我必须从Visual Studio中的C语言调用COM组件。我可以通过指定.tlb文件,使用'#import'指令从Visual C++调用它。但我没有在C语言中看到#import指令。我可以使用替代品吗?
我不能用C ++编写,因为我必须只用纯C创建模块。
答案 0 :(得分:1)
好的,你应该(简而言之):
这是您的问题的完整,循序渐进的解决方案: http://www.codeproject.com/Articles/632616/How-to-use-NET-Csharp-COM-objects-in-plain-C
答案 1 :(得分:0)
该组件中的类型库可能来自MIDL编译IDL文件。 MIDL生成三个文件 - .tlb,.c和.h。 .c和.h文件包含C 和 C ++的接口定义 - 有大量的#ifdef __cplusplus
来提供相同的定义 - 一组用于C,另一组用于C ++。
您必须将这些.c和.h文件包含到您的项目中。如果您有COM组件源 - 在构建组件后获取这些文件。如果它是由第三方发货 - 联系他们并要求他们发布这些文件。