问题:通常我们VC使用的编译环境都是ANSI(Use Multi-Byte Character Set)模式的字符集。这种程序有很大的局限性。要想使程序同时支持多国语言,就必须考虑代码 UNICODE 的兼容性,也就是说它既在 ASCII 模式下运行 ,也能在UNICODE 模式下运行。如果将VC的编译环境改为Unicode(Use Unicode Character Set)模式,而程序代码中使用的还是ANSI字符,就会出现这样的编译错误:error C2664: atoi : cannot convert parameter 1 from CString to const char *请问各位:下面函数在 unicode下该怎样实现才能编译通过?1、intNum=atoi(strNum);2、strcpy(charNum,strNum);3、sprintf(charsql,strsql);其中,intNum为int;strNum,strsql为CString;charNum,charsql为char也希望各位老兄能提供其它关于 unicode的问题!
这些 函数 的 ANSI模式 和 Unicode模式下 是类似的,参数基本一致。
int atoi( const char *string ); --> int _wtoi( const wchar_t *string );
char *strcpy( char *strDestination, const char *strSource ); --> wchar_t *wcscpy( wchar_t *strDestination, const wchar_t *strSource );
int sprintf( char *buffer, const char *format [, argument] ... ); --> int swprintf( wchar_t *buffer, const wchar_t *format [, argument] ... );
以最后一组为例示范: ANSI:
char buffer[8]; sprintf(buffer,"Time%d",123);
Unicode -->
wchar buffer[8]; swprintf(buffer,L"Time%d",123); 如果你对通常我们VC使用的编译环境都是ANSI(Use Multi-Byte Character Set)模式的字符集。这种程序有很大的局限性。要想使程序同时支持多国语言,就必须考虑代码 UNICODE 的兼容性,也就是说它既在 ASCII 模式下运行 ,也能在UNICODE 模式下运行。如果将VC的编译环境改为Unicode(Use Unicode Character Set)模式,而程序代码中使用的还是ANSI字符,就会出现这样的编译错误:error C2664: atoi : cannot convert parameter 1 from CString to const char *请问各位:下面函数在 unicode下该怎样实现才能编译通过?1、intNum=atoi(strNum);2、strcpy(charNum,strNum);3、sprintf(charsql,strsql);其中,intNum为int;strNum,strsql为CString;charNum,charsql为char也希望各位老兄能提供其它关于 unicode的问题!这个问题有好的意见或
建议,请留言
|