C++ MFC winsock1和2

C++ MFC winsock1和2,c++,mfc,winsock,winsock2,C++,Mfc,Winsock,Winsock2,我的项目陷入困境 我必须用我的程序连接两个雷达,但第一个雷达有自己的库,它使用winsock,而第二个雷达我想使用winsock2 我该怎么做 目前,我从winsock.h和winsock2.h中的include中得到了许多重新定义错误 考虑到第一个雷达库已经是一个DLL,我只有一个头文件和库文件(没有源文件) 提前感谢您的回答。您可以通过构造代码(和预编译头)来解决编译问题,这样就不会有文件同时包含winsock.h和winsock2.h,这可能意味着根本不使用预编译头,或者以比MFC项目中更

我的项目陷入困境

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

我该怎么做

目前,我从
winsock.h
winsock2.h
中的include中得到了许多重新定义错误

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


提前感谢您的回答。

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

您可以将每个DLL包装在COM对象中,并通过COM从主程序访问它们。这样做的好处是将两个DLL的使用与主编译完全分离

您可以将每个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>
\ifndef\u窗口_
#定义WIN32_精益_和_平均值
#包括
#未定义WIN32\u精益\u和\u平均值
#恩迪夫
#包括

我做的一些语言编辑。我希望我保留了你的意思。不过,我仍然对“雷达”感到困惑。