您好我创建了C#Exe Com Server并从VB6应用程序中引用它。 问题是所有的枚举都在vb app中以“奇怪的名字”暴露:EnumName_EnumeItem,而从VB6代码转换为EnumName.EnumItem。
无法修改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
答案 0 :(得分:2)
我认为你是对的,唯一的办法是自己修改IDL。我可以告诉你一些关于它是如何完成的......
那应该够了。抱歉,我不能给你所有正确的命令行开关,但我现在不在Windows机器上。