社区
C++ 语言
帖子详情
求助: 关于#ifdef _UNICODE的疑问
miniSteel
2007-05-18 02:27:10
请问"_UNICODE"是个类型名还是什么东西? 在哪里有定义, 它是怎么和Unicode码联系起来的?
...全文
1535
10
打赏
收藏
求助: 关于#ifdef _UNICODE的疑问
请问"_UNICODE"是个类型名还是什么东西? 在哪里有定义, 它是怎么和Unicode码联系起来的?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
珍惜生命远离CPP
2007-05-18
打赏
举报
回复
编译选项里面有 一个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的
珍惜生命远离CPP
2007-05-18
打赏
举报
回复
_UNICODE 是个宏
如果定义了_UNICODE
那么MessageBox将被替换成MessageBoxW,因为实际上没有MessageBox这个函数的
否则MessageBox被替换成MessageBoxA
MessageBoxA 使用的是 ascii类型的参数
MessageBoxW 使用的是 unicode类型参数
VC的一些#if
def
STRICT #if
def
UNICODE
是什么意思,什么时候能用到呢
还望高手解答~
Visual Studio 2008 #if
def
UNICODE
设置
Visual Studio 2008 字符集, #if
def
UNICODE
设置
#if
def
如何实现“与或”
原本用宏定义包起来的代码类似如下: #if
def
A //... #endif // A 现在要加入一个宏定义 B,实现类似这样的条件判断(显然实际上这样是不行的): #if
def
A && if
def
B 其实应该这样: #if (
def
ined A) && (
def
ined B) //... #endif “或”的形式是: #if (!
def
ined A) || (!
UNICODE
还是_
UNICODE
在windows编程中,经常要编译
Unicode
版本的程序,方法是工程文件的配置中加上
UNICODE
或者_
UNICODE
编译条件,那么到底是用哪一个呢?Jeffrey Richter在《Windows核心编程》中说,_
UNICODE
宏用于C运行期头文件,而
UNICODE
宏则用于Windows头文件.当编译源代码模块时,通常必须同时定义这两个宏.究竟是怎么样的呢?我在MFC的头文件中搜了一下
【条件编译】#if
def
的#if #else 和AND/OR(与和或)
宏定义的三种方式:#if
def
/#ifn
def
,#if
def
ined(),#if (1)#if
def
和#if
def
ined()比较 第一种方法只能判断一个宏,如果条件比较复杂实现起来比较烦锁,用后者就比较方便。 #if
def
ined(macro1) || (!
def
ined(macro2) &&
def
ined(macro3))... #else... ...
C++ 语言
65,210
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章