arx2002升级到arx2008处理ACHAR错误报警问题的方法 1.基本概念:
char:ANSI字符串,可用字符串处理函数strcat( ),strcpy( ), strlen( )等以str打头的函数。
wchar_t :wchar_t是Unicode字符的数据类型,它的实际定义为:typedef unsigned short wchar_t;
wchar_t 可用字符串处理函数:wcscat(),wcscpy(),wcslen()等以wcs打头 的函数。
WCHAR:在头文件中有这样的定义:typedef wchar_t WCHAR; 所以WCHAR实 际就是wchar_t。
在C语言里面提供了 _UNICODE宏(有下划线),在Windows里面提供了 UNICODE宏(无下划线),只要定了_UNICODE宏和UNICODE宏,系统就会自 动切换到UNICODE版本,否则,系统按照ANSI的方式进行编译和运行。只定 义了宏并不能实现自动的转换,他还需要一系列的字符定义支持。 TCHAR:
如果定义了UNICODE宏则TCHAR被定义为wchar_t。typedef wchar_t TCHAR; 否则TCHAR被定义为char typedef char TCHAR;
ACHAR:此类型是AUTODESK公司在adachar.h 头文件中定义的。
当定义了AD_UNICODE(AUTODESK公司使用UNICODE宏)时为wchar_t。
2.处理方法:
a. 在项目Rcam Property Pages->Configuration Properties->General->Character Set中设置为
Use Unicode Character Set
b. 将有字符窜用_T()转换类型,例如:
str.Format(\"版权所有2002.1-%d.%d\",endtime.GetYear(),endtime.GetMonth());
修改为:str.Format(_T(\"版权所有2002.1-%d.%d\"),endtime.GetYear(),endtime.GetMonth()); acutPrintf(\"\\nMyCommand1:Hello World! \");
修改为:acutPrintf(_T(\"\\nMyCommand1:Hello World! 哈哈\"));
c. 重新编译,错误报警消失!
因篇幅问题不能全部显示,请点此查看更多更全内容