在DLL中使用类
Using a class inside a dll
本文关键字:DLL 更新时间:2023-10-16
我在另一个项目中使用的DLL中有一个类。我读了有关如何执行此操作的教程,我的伪代码看起来像
接口.h
#ifdef EXPORT
#define SOMEAPI __declspec(dllexport)
#else
#define SOMEAPI __declspec(dllimport)
#endif
struct ISomeInterface
{
virtual void SomeMethod()=0;
};
typedef ISomeInterface* SOMEHANDLE;
#define EXTERN_C extern "C"
EXTERN_C SOMEAPI SOMEHANDLE WINAPI CreateSomething(VOID);
然后我有SomeDLL.dll
,它实现了ISomeInterface
和CreateSomething
。
当我尝试在客户端中使用它时,我会收到链接器错误。客户看起来像这样:
client.cpp
#include "interface.h"
SOMEHANDLE h = ::CreateSomething(); // Linker error here: Unresolved external
我可以通过将DLL项目添加为VC 中客户端项目的依赖性来解决此问题。那一切都很好。
问题是,如果我想使用它一个独立的DLL(现在是这种情况)怎么办?那么如何摆脱链接器错误?
我可以通过添加DLL项目作为客户端项目的依赖性来解决此问题
是的,这会自动完成您在独立项目中必须做的一件事。项目 属性,链接器,输入,其他依赖关系设置。添加DLL项目生成的.lib文件。导入库,它告诉链接器DLL导出的功能。
相关文章:
- 没有找到相关文章