2011-03-08 65 views
4

我正在嘗試編寫由c#.net中另一個VB6引用的VB6 dll的替代品。防止COM名稱處理

現在我們只能在後期工作,而且我正在取得一些成功。除了我遇到問題。

我枚舉正在忙玲導致它被調用,而不是指望「BACSAU」

遺留代碼(顯然)不再編譯「A1BACSTrans_BACSAU」。

這可以預防嗎?如果是這樣,怎麼樣?我聽說修改IDL,但我可以看到沒有任何參考在他們的名字只有unmangled ...

謝謝你提前!

+0

你在看哪個IDL? – 2011-03-09 10:30:26

+0

.class public auto ansi sealed TestA1Replacement.BCStrategy extends [mscorlib] System.Enum { .custom instance void [mscorlib] System.Runtime.InteropServices.ComVisibleAttribute ::。ctor(bool)=(01 00 01 00 00) .field public specialname rtspecialname int32 value__ .field public static literal valueetype TestA1Replacement.BCStrategy BCStratAV = int32(0x00000000) ........ more ....... } //結束課TestA1Replacement。 BCStrategy 我可以在上面看到沒有名稱混入的證據。 – 2011-03-09 11:15:26

+0

@Mattias還行。 我認爲這是'我'不'idl',因此沒有帶我所期待的。 我已經從使用OLE/COM對象查看器中聽到了這一點。 枚舉{ BCStrategy_BCStratAV = 0, BCStrategy_BCStratFull = 1, BCStrategy_BCStratInfo = 2, BCStrategy_BCStratNone = 3 } BCStrategy; 但是當我保存,並嘗試使用MIDL創建TBL我得到的錯誤 負荷:錯誤MIDL2088:[UUID]格式不正確 是真的沒有辦法在代碼級別的說不要裂傷這些名字?! – 2011-03-09 12:40:34

回答