游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5291|回复: 10

VC中能同时使用unicode和非unicode吗

[复制链接]

36

主题

109

帖子

111

积分

注册会员

Rank: 2

积分
111
发表于 2007-12-20 12:08:00 | 显示全部楼层 |阅读模式
比如 ,在一个函数内部,我这样声明了两个对象。
char a[30];
wchar_t b[40];
strcpy(a,"hello");
wcscpy(b,L"jack");
但是我VC2005用的是_UNICODE方式,不知道这样行不行,我不知道编译环境中设置_UNICODE方式究竟有什么作用

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2007-12-20 12:17:00 | 显示全部楼层

Re:VC中能同时使用unicode和非unicode吗

可以!

定义UNICODE只是让WINDOWS API中的函数都使用UNICODE版本。

标准C函数不影响。

36

主题

109

帖子

111

积分

注册会员

Rank: 2

积分
111
 楼主| 发表于 2007-12-20 13:27:00 | 显示全部楼层

Re:VC中能同时使用unicode和非unicode吗

哦,这样说,如果定义了UNICODE的话,我如果调用了WINDOWS中的API,那么我传给他的字符参数一定是UNICODE的才行了,难怪我调用 MessageBox(NULL,"HELLO","TEST",MB_OK)总是报错,在6。0就可以,原来是因为这个函数用了UNICODE版本,谢谢楼上

4

主题

118

帖子

119

积分

注册会员

Rank: 2

积分
119
发表于 2007-12-20 22:02:00 | 显示全部楼层

Re: VC中能同时使用unicode和非unicode吗

MessageBox 只是一个宏

你可以通过MessageBoxA 或者 MessageBoxW 来直接调用MessageBox的多字节版本和Unicode版本

其他函数可以类推

2

主题

29

帖子

29

积分

注册会员

Rank: 2

积分
29
QQ
发表于 2007-12-21 15:55:00 | 显示全部楼层

Re:VC中能同时使用unicode和非unicode吗

很多文字方面的函数都有两个版本的,
XXXXXA--------ANSI版本的。
XXXXXW--------UNICODE版本的。
如果你没使用#define UNICODE 的话,就只会调用XXXXA版本的;如果声明了UNICODE宏,就会调用XXXXW版本的。

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2008-1-14 11:43:00 | 显示全部楼层

Re: Re:VC中能同时使用unicode和非unicode吗

kuaidh00: Re:VC中能同时使用unicode和非unicode吗

很多文字方面的函数都有两个版本的,
XXXXXA--------ANSI版本的。
XXXXXW--------UNICODE版本的。
如果你...


严重同意!

1

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2008-1-17 15:43:00 | 显示全部楼层

Re:VC中能同时使用unicode和非unicode吗

你可以无视UNICODE宏定义,直接调相应版本的API就行了,比如你在某处调用了xxxA这是个非unicode的API,但同一个程序里你可以在别处掉xxxW,这样同进使用unicode和非unicode的API不是问题

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2008-1-28 13:06:00 | 显示全部楼层

Re:VC中能同时使用unicode和非unicode吗

强烈鄙视那些调用不确定版本的API的!那是乱码的根源。

3部曲:

1调用的时候,需要自己明确决定是调用A还是W;
2自己的程序,内部应当尽量使用wchar_t * 来保存字符串;
3应该封装自己的String类。

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2008-1-28 16:08:00 | 显示全部楼层

Re:VC中能同时使用unicode和非unicode吗

我都是用unicode。不考虑非unicode的。
看来大家要考虑一下怎么学习unicode了。

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2008-1-29 13:34:00 | 显示全部楼层

Re: Re:VC中能同时使用unicode和非unicode吗

xpertsoft: Re:VC中能同时使用unicode和非unicode吗

我都是用unicode。不考虑非unicode的。
看来大家要考虑一下怎么学习unicode了。


很多时候,UNICODE是 乱码 的罪魁祸首!

而且,UNICODE乱码,一般用户很难正确转换!

因为,你程序是UNICODE,但外界输入有些是ANSI。
然后,你 一律 按照默认的932(GB2312)代码页转换为UNICODE,
结果...乱码。

因该按照正确的代码页,在自己程序里手工处理ANSI,
而不是不考虑非UNICODE。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-20 01:15

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表