0

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

在此处输入图像描述

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

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

在此处输入图像描述

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

在此处输入图像描述

你能帮我解决这个问题吗?

BR

4

1 回答 1

1

您的链接器错误表明您的 SOCK_Stream 类未使用正确的 dllimport/dllexport 宏进行标记。

有很多方法可以解决这个问题。这只是一个基本的方法

1)在您的 SOCK_Stream 类头中添加宏:

#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 从服务器项目中导出要链接的符号。通过不在 Server 中定义 BUILDING_SOCK_STREAM,宏将默认为 __declspec(dllimport)。

于 2013-08-29T21:05:40.147 回答