VC6升级到2005时的问题

时间:2022-09-08 08:21:56
一个工程在VC6下,现在想升级到2005下(不升级不行,工程太大,obj超过4K,无法生成pdb文件了),但是我的一个类名和升级
版的<winsock2.h>里一个类型定义重了,编译时说我重定义。

这个类在我的工程中使用的地方有5000多处,所以不能用改名的办法,和<winsock2.h>又分不开,求大哥们给个可行的办法!

比如有没有什么办法可以在引用库函数的时候屏蔽一些他们的声明?

5 个解决方案

#1


VC6升级到2005时的问题

#2


用替换功能,在项目的所有文件中替换,全字匹配、区分大小写。

如果是用#define定义的宏,可以#undef取消定义。

也可以把头文件复制一份到项目目录,把冲突的定义改掉,项目中用"winsock2.h"包含。

#3


关注中

#4


回2楼:
1、全部查找替换那是没办法的办法了,不到最后一步我不想用这个办法,真的不保险。
2、不是#define,是typedef,这个有办法取消吗?我在想的就是怎么能在引用头文件后把这个定义用类似#undef的方法屏蔽掉,反正我也用不到它定义的这个类型。

#5


多谢2楼,用“也可以把头文件复制一份到项目目录,把冲突的定义改掉,项目中用"winsock2.h"包含”解决了。

#1


VC6升级到2005时的问题

#2


用替换功能,在项目的所有文件中替换,全字匹配、区分大小写。

如果是用#define定义的宏,可以#undef取消定义。

也可以把头文件复制一份到项目目录,把冲突的定义改掉,项目中用"winsock2.h"包含。

#3


关注中

#4


回2楼:
1、全部查找替换那是没办法的办法了,不到最后一步我不想用这个办法,真的不保险。
2、不是#define,是typedef,这个有办法取消吗?我在想的就是怎么能在引用头文件后把这个定义用类似#undef的方法屏蔽掉,反正我也用不到它定义的这个类型。

#5


多谢2楼,用“也可以把头文件复制一份到项目目录,把冲突的定义改掉,项目中用"winsock2.h"包含”解决了。