版的<winsock2.h>里一个类型定义重了,编译时说我重定义。
这个类在我的工程中使用的地方有5000多处,所以不能用改名的办法,和<winsock2.h>又分不开,求大哥们给个可行的办法!
比如有没有什么办法可以在引用库函数的时候屏蔽一些他们的声明?
5 个解决方案
#1
#2
用替换功能,在项目的所有文件中替换,全字匹配、区分大小写。
如果是用#define定义的宏,可以#undef取消定义。
也可以把头文件复制一份到项目目录,把冲突的定义改掉,项目中用"winsock2.h"包含。
如果是用#define定义的宏,可以#undef取消定义。
也可以把头文件复制一份到项目目录,把冲突的定义改掉,项目中用"winsock2.h"包含。
#3
关注中
#4
回2楼:
1、全部查找替换那是没办法的办法了,不到最后一步我不想用这个办法,真的不保险。
2、不是#define,是typedef,这个有办法取消吗?我在想的就是怎么能在引用头文件后把这个定义用类似#undef的方法屏蔽掉,反正我也用不到它定义的这个类型。
1、全部查找替换那是没办法的办法了,不到最后一步我不想用这个办法,真的不保险。
2、不是#define,是typedef,这个有办法取消吗?我在想的就是怎么能在引用头文件后把这个定义用类似#undef的方法屏蔽掉,反正我也用不到它定义的这个类型。
#5
多谢2楼,用“也可以把头文件复制一份到项目目录,把冲突的定义改掉,项目中用"winsock2.h"包含”解决了。
#1
#2
用替换功能,在项目的所有文件中替换,全字匹配、区分大小写。
如果是用#define定义的宏,可以#undef取消定义。
也可以把头文件复制一份到项目目录,把冲突的定义改掉,项目中用"winsock2.h"包含。
如果是用#define定义的宏,可以#undef取消定义。
也可以把头文件复制一份到项目目录,把冲突的定义改掉,项目中用"winsock2.h"包含。
#3
关注中
#4
回2楼:
1、全部查找替换那是没办法的办法了,不到最后一步我不想用这个办法,真的不保险。
2、不是#define,是typedef,这个有办法取消吗?我在想的就是怎么能在引用头文件后把这个定义用类似#undef的方法屏蔽掉,反正我也用不到它定义的这个类型。
1、全部查找替换那是没办法的办法了,不到最后一步我不想用这个办法,真的不保险。
2、不是#define,是typedef,这个有办法取消吗?我在想的就是怎么能在引用头文件后把这个定义用类似#undef的方法屏蔽掉,反正我也用不到它定义的这个类型。
#5
多谢2楼,用“也可以把头文件复制一份到项目目录,把冲突的定义改掉,项目中用"winsock2.h"包含”解决了。