1
7
C-is中的COM编程 非常 痛苦,但并非不可能。不过,责任到此为止。类型库的目的是让一个工具自动生成COM接口和co类声明,以便您可以在代码中使用它们。与.h文件非常相似,但与语言无关。.NET等价物是程序集中的元数据。 问题是,该工具无法将a.tlb转换为C声明。我相信你对“导入”很熟悉,这就是MSVC使用的东西。但是它生成C++代码,智能指针帮助您创建COM对象,调用它的接口方法并处理错误。如果有一个工具可以生成C,那么这是一个非常隐蔽的秘密。 一个诀窍让我想到,可以使用OleView.exe、File+View TypeLib来查看类型库的内容。这个视图被反编译成接口定义语言IDL。您可以将此文本复制并粘贴到.idl文件中,并使用midl.exe和/header命令行选项对其进行编译。这将生成一个.h文件,其中包含C++和接口的C声明。应该让您更接近,只要确保类型库是合理稳定的,这样您就不必经常这样做了。 |
2
1
|
3
0
C和C++都没有一个输入预处理器指令。 |
4
-2
你可以用 regasm with /tlb option 在windows注册表中注册类型。之后,您可以像C++代码中的普通COM调用一样创建实例。 来自MSDN:
|
Guilherme Albertini · DLL中的类 6 年前 |
Naomi · C#dll资源文件更改语言 6 年前 |
AidanH · C#DLL语言翻译实现[关闭] 6 年前 |
subham · DLL函数调用不工作 6 年前 |
PixelThis · 为什么我的DLL要求我的程序有一个特定的名称? 6 年前 |
nemo · DLL的“好”调用约定是什么? 6 年前 |