社区
C++ 语言
帖子详情
MessageBoxW和MessageBoxA
baifanmvp
2009-01-12 06:31:38
小第原来一直用的是vc 6,它里面MessageBox默认的是MessageBoxA版本,最近用2005,它里面默认的是MessageBoxW版本,请问是不是在2005里的windows.h里多了
#define UNICODE ? 如果是的话,为什么用#undef UNICODE后还是不能调用到MessageBoxA?
谢谢回答!!
...全文
1383
11
打赏
收藏
MessageBoxW和MessageBoxA
小第原来一直用的是vc 6,它里面MessageBox默认的是MessageBoxA版本,最近用2005,它里面默认的是MessageBoxW版本,请问是不是在2005里的windows.h里多了 #define UNICODE ? 如果是的话,为什么用#undef UNICODE后还是不能调用到MessageBoxA? 谢谢回答!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xiaoyisnail
2009-01-12
打赏
举报
回复
[Quote=引用 7 楼 baifanmvp 的回复:]
引用 6 楼 oyljerry 的回复:
引用 4 楼 baifanmvp 的回复:
引用 1 楼 shuiyan 的回复:
印象中,有UNICODE宏的不止windows.h,这里只是明显的定义一次。在别的很多地方会再次判断并重定义的。
你不如试试在undef后,直接调用MessageBoxA。
MessageBoxA直接调用这个肯定调的到,我就是不明白undef仅仅在UNICODE面前就失效了
你还要把工程属性的Debugging -》 Character set -> 改成multi byte
问题解决了,原来把配置…
[/Quote]
所以要通过配置属性来改
xiaoyisnail
2009-01-12
打赏
举报
回复
[Quote=引用楼主 baifanmvp 的帖子:]
小第原来一直用的是vc 6,它里面MessageBox默认的是MessageBoxA版本,最近用2005,它里面默认的是MessageBoxW版本,请问是不是在2005里的windows.h里多了
#define UNICODE ? 如果是的话,为什么用#undef UNICODE后还是不能调用到MessageBoxA?
谢谢回答!!
[/Quote]
是编译器编译时加的选项
flydream1980
2009-01-12
打赏
举报
回复
学习了
bitwwzhang130
2009-01-12
打赏
举报
回复
[Quote=引用 6 楼 oyljerry 的回复:]
引用 4 楼 baifanmvp 的回复:
引用 1 楼 shuiyan 的回复:
印象中,有UNICODE宏的不止windows.h,这里只是明显的定义一次。在别的很多地方会再次判断并重定义的。
你不如试试在undef后,直接调用MessageBoxA。
MessageBoxA直接调用这个肯定调的到,我就是不明白undef仅仅在UNICODE面前就失效了
你还要把工程属性的Debugging -》 Character set -> 改成multi byte
[/Quote]
学习了
baifanmvp
2009-01-12
打赏
举报
回复
[Quote=引用 6 楼 oyljerry 的回复:]
引用 4 楼 baifanmvp 的回复:
引用 1 楼 shuiyan 的回复:
印象中,有UNICODE宏的不止windows.h,这里只是明显的定义一次。在别的很多地方会再次判断并重定义的。
你不如试试在undef后,直接调用MessageBoxA。
MessageBoxA直接调用这个肯定调的到,我就是不明白undef仅仅在UNICODE面前就失效了
你还要把工程属性的Debugging -》 Character set -> 改成multi byte
[/Quote]
问题解决了,原来把配置属性改了就好了,谢谢了,但是还是有点不明白undef为什么没起到作用,难道是编译器把这句话屏敝了?
oyljerry
2009-01-12
打赏
举报
回复
[Quote=引用 4 楼 baifanmvp 的回复:]
引用 1 楼 shuiyan 的回复:
印象中,有UNICODE宏的不止windows.h,这里只是明显的定义一次。在别的很多地方会再次判断并重定义的。
你不如试试在undef后,直接调用MessageBoxA。
MessageBoxA直接调用这个肯定调的到,我就是不明白undef仅仅在UNICODE面前就失效了
[/Quote]
你还要把工程属性的Debugging -》 Character set -> 改成multi byte
baifanmvp
2009-01-12
打赏
举报
回复
msdn我没2005的。。。
baifanmvp
2009-01-12
打赏
举报
回复
[Quote=引用 1 楼 shuiyan 的回复:]
印象中,有UNICODE宏的不止windows.h,这里只是明显的定义一次。在别的很多地方会再次判断并重定义的。
你不如试试在undef后,直接调用MessageBoxA。
[/Quote]
MessageBoxA直接调用这个肯定调的到,我就是不明白undef仅仅在UNICODE面前就失效了
waizqfor
2009-01-12
打赏
举报
回复
[Quote=引用楼主 baifanmvp 的帖子:]
小第原来一直用的是vc 6,它里面MessageBox默认的是MessageBoxA版本,最近用2005,它里面默认的是MessageBoxW版本,请问是不是在2005里的windows.h里多了
#define UNICODE ? 如果是的话,为什么用#undef UNICODE后还是不能调用到MessageBoxA?
谢谢回答!!
[/Quote]
查查MSDN吧 里面有说明 找找2005版的
xbwee
2009-01-12
打赏
举报
回复
这是操作系统函数由
#define _UNICODE
#undef _UNICODE
控制
shuiyan
2009-01-12
打赏
举报
回复
印象中,有UNICODE宏的不止windows.h,这里只是明显的定义一次。在别的很多地方会再次判断并重定义的。
你不如试试在undef后,直接调用MessageBoxA。
C# wpf 自定义替换系统的
MessageBox
《C# wpf 实现自定义界面操作分离的
MessageBox
》中我们得到了一个...本资源是完整的源码,但Hook部分核心代码不可见,具体实现封装在C++的dll中,且dll只提供
MessageBox
W和
MessageBox
A的Hook和Unhook,请根据需要下载。
Hook全局所有程序的
MessageBox
Hook全局所有程序的
MessageBox
熟悉API的都知道,系统中没有
MessageBox
,有的只是
MessageBox
A和
MessageBox
W, 因此HOOK
MessageBox
,其实是HOOK
MessageBox
A和
MessageBox
W
Hook所有程序的
MessageBox
.zip
Hook所有程序的
MessageBox
.zip VS2008源码和成品 熟悉API的都知道,系统中没有
MessageBox
,有的只是
MessageBox
A和
MessageBox
W, 因此HOOK
MessageBox
,其实是HOOK
MessageBox
A和
MessageBox
W。
DELPHI HOOK 钩子 DLL+调用
DELPHI HOOK 钩子 通过调用API 通过
MessageBox
A,
MessageBox
W,
MessageBox
W,OpenProcess 函数的截取。
DllEXP DLL查看器1.36最新版
例如:如果你想打破每次一个消息框将显示,简单地把信息的内存地址断点盒功能:
MessageBox
A,
MessageBox
ExA和
MessageBox
IndirectA(或
MessageBox
W,
MessageBox
ExW,并在Unicode基础
MessageBox
IndirectW应用程序)当...
C++ 语言
64,637
社区成员
250,559
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章