我在dll中有一个类,我想在另一个项目中使用它。我读了this tutorial关于如何做到这一点,我的伪代码看起来像这样
interface.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 ++中Client项目的依赖项来解决这个问题。一切都很好。
问题是,如果我想使用这个标准的dll(现在就是这种情况)?如何消除链接器错误呢?
答案 0 :(得分:0)
我可以通过添加dll项目作为客户端项目
的依赖项来解决这个问题
是的,这会自动完成手动独立项目中的一件事。项目+属性,链接器,输入,附加依赖项设置。添加DLL项目生成的.lib文件。导入库,它告诉链接器有关DLL导出的函数。