阅读:1208回复:4
passthru下面如何转一个unicode类型的字符串
我想在protocol.c里面的PtPnPNetEventReconfigure函数中把传进来的IN PCWSTR pBundleString(实际上是一个unicode字符串)转换成一个普通的ANSI字符串,但使用了RtlUnicodeStringToAnsiString 或者NdisUnicodeStringToAnsiString都无法转换成功,在编译的时候就会出错。各位大侠又没有解决办法?万分感谢!
送分 |
|
沙发#
发布于:2003-08-21 09:35
你是怎么转换的,编译出什么错误?这些问问题时都应该贴出来呀。
如果你直接调用NdisUnicodeStringToAnsiString/RtlUnicodeStringToAnsiString当然不行了,因为虽然PCWSTR指向一个UNICODESTRNG,但是UNICODE_STRING是一个结构,你需要先从PCWSTR转换到UNICODE_STRING,然后才能调用。至于转换,可以自己拷贝,也可以用RtlInitUnicodeString/NdisInitUnicodeString。 |
|
板凳#
发布于:2003-08-21 09:39
如果问题解决了,分就不用送了,
留着问大虾们棘手的问题用吧,呵呵。 |
|
地板#
发布于:2003-08-21 20:58
如果问题解决了,分就不用送了, 昨天自己调通过了,今天看到这个帖子,十分感谢! 另外在IMD里面定义float类型的变量编译也会出错,想要生成一个随机数,使用了float类型,结果出错说是fltused,错误编号LNK2001,这是为什么啊? |
|
地下室#
发布于:2003-08-22 00:28
昨天自己调通过了,今天看到这个帖子,十分感谢!
另外在IMD里面定义float类型的变量编译也会出错,想要生成一个随机数,使用了float类型,结果出错说是fltused,错误编号LNK2001,这是为什么啊? [/quote] 我看了一下ddk文档,是说需要用FPU来设置浮点数运行环境。我加入了如下代码,在编译的时候返回十几个错误,大都是KeGetCurrentIrql not defined之类的错误,这个有什么办法吗? ASSERT(KeGetCurrentIrql() <= DISPATCH_LEVEL); KFLOATING_SAVE FloatSave; NTSTATUS status = KeSaveFloatingPointState(&FloatSave); if (NT_SUCCESS(status)) { ... KeRestoreFloatingPointState(&FloatSave); } |
|