Visual Studio C++解决方案由两个C++项目组成:
-
客户端生成Client.exe
-
Algo生成一个Algo.dll
客户端和Algo通过COM层进行通信,因此Algo是一个COM dll。
我想在Algo中添加一个函数。dll并直接从客户端调用它,避免了COM层,但在构建Client.exe时未能成功解决“未解决的符号”链接错误
在Algo项目中,我添加了LIBRARY_EXPORT预处理器定义和以下文件:
TestFile.h
#ifdef LIBRARY_EXPORTS
# define LIBRARY_API __declspec(dllexport)
#else
# define LIBRARY_API __declspec(dllimport)
#endif
extern "C" LIBRARY_API bool __stdcall TestFunction();
TestFile.cpp
extern "C" LIBRARY_API bool __stdcall TestFunction()
{
return true;
}
在客户端项目中,有一个对TestFunction()的调用;
我在构建客户端时遇到链接错误:
未解析的外部符号“__declspec(dllimport)bool__ cdecl测试函数(void)
显然,我不知道如何正确导出/导入我的函数。