在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,它实现了ISomeInterfaceCreateSomething
当我尝试在客户端中使用它时,我会收到链接器错误。客户看起来像这样:
client.cpp

#include "interface.h"
SOMEHANDLE h = ::CreateSomething();  // Linker error here: Unresolved external  

我可以通过将DLL项目添加为VC 中客户端项目的依赖性来解决此问题。那一切都很好。
问题是,如果我想使用它一个独立的DLL(现在是这种情况)怎么办?那么如何摆脱链接器错误?

我可以通过添加DLL项目作为客户端项目的依赖性来解决此问题

是的,这会自动完成您在独立项目中必须做的一件事。项目 属性,链接器,输入,其他依赖关系设置。添加DLL项目生成的.lib文件。导入库,它告诉链接器DLL导出的功能。

相关文章:
  • 没有找到相关文章