gpt4 book ai didi

c++ - 同一解决方案中不同项目之间的引用(Visual Studio 2012)

转载 作者:行者123 更新时间:2023-11-28 07:27:21 25 4
gpt4 key购买 nike

我无法让这个引用起作用。我的解决方案中有 2 个项目。包装外观和服务器:

enter image description here

我在以下附加包含目录中添加了“包装器外观”的路径:服务器属性页 -> 配置属性 -> C/C++ -> 常规。

它似乎有效,因为当我将它们包含在服务器项目中时,智能可以找到正确的 .h 文件。

enter image description here

问题是,当我尝试从 Wrapper facade 启动一个类时,我遇到了一些无法解决的 LINK 问题。它们在图片上看起来像。

enter image description here

你能帮我吗?

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com