如何在C中使用tlb文件?

rpl*_*usg 1 c c# com import dll

tlb文件(使用regasm)是由dll(使用c#代码)制作的,我可以使用#import在c ++中使用它.一切都很好.有没有办法,我可以在C语言中使用它吗?我刚发现#import是c ++特有的.那么,有人可以告诉我如何在我的C程序中使用它?

我的主要目的是在我的C程序中使用C#开发的COM DLL.

谢谢&Rgds,~calvin

Han*_*ant 7

C中的COM编程非常痛苦,但并非不可能.但是,降压在此停止.类型库的要点是让工具自动生成COM接口和共同类声明,以便您可以在代码中使用它们.非常类似于.h文件,但与语言无关..NET等价物是程序集中的元数据.

问题是,工具不可用于将.tlb转换为C声明.我确定你熟悉#import,这就是在MSVC中使用的东西.但它会生成C++代码,智能指针可帮助您创建COM对象,调用其接口方法并处理错误.如果有一个可用的工具生成C,那么这是一个非常隐秘的秘密.

跳过一个技巧,你可以使用OleView.exe,File + View TypeLib来查看类型库的内容.该视图被反编译为IDL,即接口定义语言.您可以将此文本复制并粘贴到.idl文件中,并使用/ header命令行选项使用midl.exe进行编译.这将生成一个.h文件,其中包含C++和接口的C声明.应该让你接近,只要确保类型库相当稳定,所以你不必经常这样做.