3
嗨,我創建了C#EXE COM服務器,並從VB6應用程序引用它。 問題是,所有的枚舉暴露在vb應用程序中的「奇怪的名字」:EnumName_EnumeItem,而從VB6代碼緩存爲EnumName.EnumItem。C#Com枚舉和VB6
VB6應用程序代碼無法修改。 想知道我看到我可以通過改變tlb的idl提取來改變這個定義,但是沒有完全理解它是如何完成的,以及這個工作的工具是什麼。
任何建議如何儘可能輕鬆地設置枚舉?
代碼:
public enum enResultCode : uint
{
enRCNone = 0x00000000,
enRCNotFound = 0x00000001,
enRCFoundOnServer = 0x00000002,
enRCFoundOnLocal = 0x00000003,
enRCDatabaseError = 0x00000004,
enRCAborted = 0xFFFFFFFF,
enRCServerError = 0xFFFFFFFE,
enRCLocalError = 0xFFFFFFFD
}
中所示爲VB6:
代替:
enResultCode.EnumItemName
這由[本文]備份(http://blogs.artinsoft.net/mrojas/archive/2010/05/17/interop-remove-prefix-from-c-enums-for-com.aspx ) – Deanna
謝謝。我有一些從idl創建tlb的問題。稍後將對此進行評論(之後我會得到答案)。 –