如何在vc++ 6.0项目中使用不需要.h和.lib文件的DLL

How to use a DLL without the need of its .h and .lib files in a VC++ 6.0 Project?

本文关键字:不需要 lib 文件 DLL vc++ 项目      更新时间:2023-10-16

我不知道怎么做:

  • 我使用的是MS Visual c++ 6.0
  • 我有一个可编译的Win32 DLL项目。
  • 我有另一个项目,这次是一个Win32控制台项目通过包含它的头文件和链接的.lib文件来创建DLLDLL。

现在我想有另一个项目,类似于第二个,但不使用头文件和lib文件。

这可能吗?我读到的所有地方都需要dll+lib+h或dll+h。如果认为如果知道接口,一个DLL文件就足够了吗?

顺便说一句,我所说的"使用DLL"是指使用DLL中定义的类和函数。

如果你只有普通的"extern C"函数,这是可能的。如果是这种情况,可以使用LoadLibrary加载dll,然后使用GetProcAddress导入每个函数,当然您需要知道函数签名以创建正确声明的函数指针。相反地使用类几乎是不可能的

如果您的DLL包含类,则很有可能它是COM组件。

如果是这种情况,#import指令(像#include一样使用)构建一些包含接口详细信息的临时包含文件。你应该使用COM来访问你的对象。

否则,如果你有一个带有c++类的'plain' DLL,你可以使用linkker:命令它转储映射(见这里)来访问导出的符号,以知道被扭曲的名称。但是我不认为手工创建界面是可能的。