【发布时间】:2017-02-15 18:29:41
【问题描述】:
Visual Studio C++ 解决方案由两个 C++ 项目组成:
- 客户端生成client.exe
- Algo 生成一个 algo.dll
客户端和 Algo 通过 COM 层进行通信,因此 Algo 是一个 COM dll。
我想在Algo.dll中添加一个函数,直接从Client调用,避开COM层,但是没有成功解决构建Client.exe时出现的“未解析符号”链接错误
尝试了什么?
在 Algo 项目中,我添加了 LIBRARY_EXPORT 预处理器定义和以下文件: 测试文件.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 TestFunction(void)
显然,我没有正确了解如何导出/导入我的函数。
【问题讨论】:
标签: c++ dll com dllimport dllexport