使用C ++编写的COM组件

时间:2015-06-03 10:57:01

标签: c# com

我想调用一个用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文件。

  1. 我怎样才能找出失败的原因?
  2. 有没有其他方法可以从C#创建和调用该组件?
  3. 修改

    有一个odl文件ObjectServer.odl,其中包含library子句中的接口ODL。所以我在ODL上运行MIDL并获得了一个TLB文件。

    然而,当我尝试在我的C#项目中引用该TLB时,我得到:

    enter image description here

0 个答案:

没有答案