0

我的项目陷入困境。

我必须将两个雷达与我的程序链接,但第一个有自己的使用 winsock 的库,而第二个我想使用 winsock2。

我怎样才能做到这一点?

目前,我从包含在winsock.h和中得到许多重新定义错误winsock2.h

考虑到第一个雷达库已经是一个 DLL,我只有一个头文件和 lib 文件(无源)。

提前感谢您的任何回答。

4

1 回答 1

0

您可以通过构建代码(和预编译头文件)来解决编译问题,以便没有文件同时包含winsock.h和winsock2.h,这可能意味着根本不使用预编译头文件或以比更复杂的方式使用它们在MFC项目中是正常的...

您可以将每个 DLL 包装在一个 COM 对象中,并从您的主程序通过 COM 访问它们。这具有将两个 DLL 的使用与主编译完全分开的优点。

您可以将每个 DLL 包装在一个新的 DLL(每个一个)中,该 DLL 为您的程序提供了一个接口,该接口不需要接口头文件中的 winsock 头文件。

当然,这可能只是您的 Windows.h 包含顺序的问题,请尝试将其放在预编译头文件的顶部...

#ifndef _WINDOWS_
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#undef WIN32_LEAN_AND_MEAN
#endif

#include <winsock2.h>
于 2010-09-15T11:46:07.403 回答