最近,有个项目开发,需要用到以前项目的代码,不过以前项目都是VC6下编译通过的,在VS2008下不一定编译通过,能编译通过也不一定能链接成功。下面总结一下我在一个VC6项目移植到VS2008中遇到的一些问题以及解决办法。
1 类型转换
1)WCHAR *wszFind = wcschr( wszText,(WCHAR)'@');
这个代码在VC6下编译是没问题的,但在VS2008下,编译会报错,就是类型转换的问题,修改如下:
WCHAR *wszFind = (WCHAR *)wcschr( wszText,(WCHAR)'@');
2)
1)
int ConvertAnsiToUnicode16(const CHAR * szIn,CHARU16 *szOut,int nSize )
下面在VS2008编译不通过,
nLen = ConvertAnsiToUnicode( szIn,szOut,nSize );
如下修改可以:
nLen = ConvertAnsiToUnicode( szIn, (WCHAR *)szOut,nSize );
就是说VS2008,对代码的要求更严格,会对类型做检测,不会支持默认的类型强制转换。
2 DWORD dwPower