我想调用一个用c ++创建的COM对象。
我有一个包含界面的OLD文件:
import "oaidl.idl";
import "ocidl.idl";
[oleautomation,uuid(D4F82FE1-E58E-11d1-9D47-006008098294)]
interface INotifier : IUnknown
{
//...
}
在C ++应用程序中创建组件如下:
CreateInstance( __uuidof(CObjectServer),
__uuidof(INotifier),
(void**)&m_pINotifier,
"CObjectServer INotifier");
所以我尝试使用MIDL编译器生成TLB:
MIDL /tlb notifier.tlb /h notifierTest.h notifier.odl
它运行并且不显示任何错误消息,但它不会生成TLB文件。
修改
有一个odl文件ObjectServer.odl
,其中包含library
子句中的接口ODL。所以我在ODL上运行MIDL并获得了一个TLB文件。
然而,当我尝试在我的C#项目中引用该TLB时,我得到: