| 
			 
					阅读:1302回复: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); }  | 
	|