我的项目陷入了困境。
我必须将两个雷达连接到我的程序中,但第一个雷达有自己的库,使用winsock,而第二个雷达我想使用winsock2。
我该怎么做呢?
目前,我从winsock.h和winsock2.h中的includes中得到了许多重新定义错误。
考虑到第一个雷达库已经是一个DLL,我只得到了一个头文件和lib文件(没有源代码)。
提前感谢您的回复。
发布于 2010-09-15 19:46:07
你可以通过构造你的代码(和预编译头文件)来解决编译问题,这样就没有文件同时包含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>https://stackoverflow.com/questions/3715721
复制相似问题