0

我想在另一个项目中使用的 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(现在就是这种情况)怎么办?那我该如何摆脱链接器错误呢?

4

1 回答 1

0

我可以通过将 dll 项目添加为客户端项目的依赖项来解决这个问题

是的,这会自动完成您在独立项目中必须手动完成的一件事。项目 + 属性、链接器、输入、附加依赖项设置。添加由 DLL 项目生成的 .lib 文件。导入库,它告诉链接器有关 DLL 导出的函数。

于 2012-11-10T16:06:00.437 回答