我无法让这个引用起作用。我的解决方案中有 2 个项目。包装外观和服务器:
我在以下附加包含目录中添加了“包装器外观”的路径:服务器属性页 -> 配置属性 -> C/C++ -> 常规。
它似乎有效,因为当我将它们包含在服务器项目中时,智能可以找到正确的 .h 文件。
问题是,当我尝试从 Wrapper facade 启动一个类时,我遇到了一些无法解决的 LINK 问题。它们在图片上看起来像。
你能帮我吗?
BR
最佳答案
您的链接器错误表明您的 SOCK_Stream 类未使用正确的 dllimport/dllexport 宏标记。
有很多方法可以解决这个问题。这只是一个基本的方法
1) 在您的 SOCK_Stream 类 header 中添加宏:
#ifdef BUILDING_SOCK_STREAM
#define SOCK_STREAM_DLL __declspec(dllexport)
#else
#define SOCK_STREAM_DLL __declspec(dllimport)
#endif
2) 用 SOCK_STREAM_DLL 宏标记你的 SOCK_Stream 类
class SOCK_STREAM_DLL SOCK_Stream {
...
};
3) 在您的 WrapperFacade 项目中定义 BUILDING_SOCK_STREAM 符号(配置属性 -> C/C++ -> 预处理器 -> 预处理器定义)
目标是让 WrapperFacade 从您的服务器项目中导出您想要链接的符号。通过不在服务器中定义 BUILDING_SOCK_STREAM,宏将默认为 __declspec(dllimport)。
关于c++ - 同一解决方案中不同项目之间的引用(Visual Studio 2012),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18520307/