我有一个带有类型库的VC COM组件.该组件的类型库声明了一个接口和一个co-class:
@H_502_2@[
object,uuid( ActualUuidHere),dual,nonextensible,oleautomation,hidden,helpstring( ActualHelpStringHere )
]
interface IWorkflow : IDispatch
{
//irrelevant properties here
}
[
uuid(ActualClassIdHere),noncreatable
]
coclass Workflow {
[default] interface IWorkflow;
};
为了从C#应用程序中使用组件,我添加了对C#项目的引用,并生成了一个interop程序集.
在Visual Studio 2003的对象浏览器中,我看到interop包含:
@H_502_2@public abstract interface IWorkflow; public abstract interface workflow : IWorkflow; public class workflowClass : System.Object;很明显,由于某种原因,类和接口的名称大小写不同.对于在同一类型库中声明的其他20个接口,这不会发生 – 对于它们,ISomething对应于Something和SomethingClass.
我查看了项目的.idl文件 – 标识符Workflow在其他任何地方都没有使用过.
这种奇怪的行为是什么原因以及它如何解决?