求助: 关于#ifdef _UNICODE的疑问

miniSteel 2007-05-18 02:27:10
请问"_UNICODE"是个类型名还是什么东西? 在哪里有定义, 它是怎么和Unicode码联系起来的?
...全文
1455 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
whlwsl 2011-05-23
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 chiyer 的回复:]
不该明白楼上的意思,这个更_DEBUG 有什么关系

我的意思是说明 _UNICODE 和 UNICODE 的区别

#ifdef _UNICODE
#ifndef UNICODE
#define UNICODE // UNICODE is used by Windows headers
#e……
[/Quote]


他只是举例而已,意思是说要你自己借助VS/VC助手去查看宏的意义,你提到的两个宏的区别自己查看完后就明白了。
星羽 2007-05-18
  • 打赏
  • 举报
回复
不该明白楼上的意思,这个更_DEBUG 有什么关系

我的意思是说明 _UNICODE 和 UNICODE 的区别

#ifdef _UNICODE
#ifndef UNICODE
#define UNICODE // UNICODE is used by Windows headers
#endif
#endif

#ifdef UNICODE
#ifndef _UNICODE
#define _UNICODE // _UNICODE is used by C-runtime/MFC headers
#endif
#endif
oyd 2007-05-18
  • 打赏
  • 举报
回复
楼上们,授人以鱼不如授人以渔

如果以后又有_DEBUG呢
楼主是还不知道如何去查看_UNICODE的定义

如果你用Visual Studio系列,去安装一个VisualAssist,它可以帮你查看_UNICODE的定义
如果你用vim/emacs系列,去查阅一下ctags/cscope的用法

星羽 2007-05-18
  • 打赏
  • 举报
回复
_UNICODE 是让c函数使用 unicode

UNICODE 是让api使用 unicode
  • 打赏
  • 举报
回复
编译选项里面有 一个character set选项,这个选项控制着这个宏的定义
miniSteel 2007-05-18
  • 打赏
  • 举报
回复
明白了, 谢谢各位!
miniSteel 2007-05-18
  • 打赏
  • 举报
回复
谢谢, 那么在哪里可以找到这个宏呢?
todototry 2007-05-18
  • 打赏
  • 举报
回复
编译器根据定义了这个宏,对于函数进行了选择
一些api的三个名字,A(ascii),W(unicode)而你使用的时候
只写messagebox即可,编译器根据定义了这个宏与否进行函数替换
freshui 2007-05-18
  • 打赏
  • 举报
回复

可能是自己#definde的
  • 打赏
  • 举报
回复
_UNICODE 是个宏

如果定义了_UNICODE
那么MessageBox将被替换成MessageBoxW,因为实际上没有MessageBox这个函数的
否则MessageBox被替换成MessageBoxA
MessageBoxA 使用的是 ascii类型的参数
MessageBoxW 使用的是 unicode类型参数

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧