首页
社区
课程
招聘
[求助]DbgPrint()输出中文?
发表于: 2009-5-17 21:35 10725

[求助]DbgPrint()输出中文?

2009-5-17 21:35
10725
UNICODE_STRING ustr;
PCWSTR str=L"hello 中华人民共和国";
RtlInitUnicodeString(&ustr,str);
DbgPrint("%wZ\n",&ustr);

在驱动中执行时,只输出了  hello ,不能输出后面紧跟的 中华人民共和国
请问这是为什么?DbgPrint不支持中文?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (8)
雪    币: 64
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
PRC 不行么,真服你了。
2009-5-18 01:48
0
雪    币: 222
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
《Windows驱动开发技术详解》上是这么写的:
KdPrint(("%S\n",ustr.Buffer));或者KdPrint(("%ws\n",ustr.Buffer));我有段时间没编过驱动程序了,只能帮你查查书
2009-5-18 13:09
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
4
转为ansi再打印
2009-5-18 13:19
0
雪    币: 183
活跃值: (228)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不能打印unicode吗?~
2009-5-18 16:58
0
雪    币: 245
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我的意思是,一个buffer中可能有中文(unicode),我想输出它们。并不是具体值是什么,呵呵。。
2009-5-18 17:00
0
雪    币: 245
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
这两种都试过,好像没输出中文。到中方的地方就断了,没了
2009-5-18 17:01
0
雪    币: 245
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
英文的unicode可以,但中文目前我没打出来
2009-5-18 17:01
0
雪    币: 245
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
嗯,ANSI可以:
ANSI_STRING astr;
CHAR *str="hello 中华人民共和国";
RtlInitAnsiString(&astr,str);
DbgPrint("%Z\n",&astr);

另:若某一内存处(dwAddress)存放的是unicode字串,可:
ANSI_STRING astr;
RtlInitUnicodeString(&ustr,(PCWSTR)dwAddress);
RtlUnicodeStringToAnsiString(&astr,&ustr,true);
DbgPrint("The string is: %Z\n",&astr);
RtlFreeAnsiString(&astr);

谢谢你。
至少目前看来,DbgPrint()不能直接输出unicode,而对ansi可以输出。
谢谢各位关注。
2009-5-18 19:52
0
游客
登录 | 注册 方可回帖
返回
//