JasonWoo 说:关键不是定义冲突,而是你要使用哪一个的问题。
1)如果使用windows sdk的API,就把你项目中的这两个定义去掉。
2)如果是使用项目中原来的定义,那就要注意包含winsock2.h的文件不能包含项目的头文件。感谢大佬回复,api的不敢随便改,我把应用程序里面的定义批量替换了,希望接手祖传代码的同事不要骂我。svn的log我已经写得很详细了。
用到WinSocket的地方不要包含QT的东西,在一个单独的文件里使用WinSocket的功能,然后QT那边调用这个文件里面的函数。
mysocket.h
extern int MyWSAStartup(void);
mysocket.cpp
#include <winsock2.h>
int MyWSAStartup(void)
{
return WSAStartup(0, NULL);
);
关键不是定义冲突,而是你要使用哪一个的问题。
1)如果使用windows sdk的API,就把你项目中的这两个定义去掉。
2)如果是使用项目中原来的定义,那就要注意包含winsock2.h的文件不能包含项目的头文件。
感谢大佬回复,api的不敢随便改,我把应用程序里面的定义批量替换了,希望接手祖传代码的同事不要骂我。svn的log我已经写得很详细了。
]]>都是类型定义冲突
]]>因为我的项目已经定义了这两个了,和windows sdk里面定义冲突,
现在我批量修改祖传项目里面的GetSystemTime / HANDLE 可以编译链接成功,
但是要改动的地方太多了,怕接手的同事揍我,
请问还有其他办法吗?
]]>