您当前的位置: 百科371电脑/网络VC++ → 电脑/网络内容 退出登录 用户管理 用户注册
本类热门文章
相关文章
中原建材网
VC unicode中的字符集转换

减小字体 增大字体

问题:通常我们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的问题!这个问题有好的意见或 建议,请留言
[] [返回上一页] [打 印]
电脑/网络评论 (评论内容只代表网友观点,与本站立场无关!)

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码

中原建材网 简单版 站长QQ:382546553