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