阅读:1183回复:7
这个“L”是什么意思?
QueryTable[0].Name = L\"Parameters\";
QueryTable[0].Flags = RTL_QUERY_REGISTRY_SUBKEY; QueryTable[0].EntryContext = NULL; QueryTable[1].Name = L\"UlongValue\"; QueryTable[1].Flags = RTL_QUERY_REGISTRY_DIRECT; QueryTable[1].EntryContext = &UlongValue; QueryTable[2].Name = L\"\"; // Default value QueryTable[2].Flags = RTL_QUERY_REGISTRY_DIRECT; QueryTable[2].EntryContext = &UnicodeString; |
|
|
沙发#
发布于:2003-02-11 09:34
QueryTable[0].Name = L\"Parameters\"; 又是个宏,好象将字符串转为宽的? :D |
|
|
板凳#
发布于:2003-02-11 09:38
能不能再讲的详细点,这样使用“L”就可以了?
看书上一会说“宽字符串”,一会又说“UNICODE_STRING”,这两个有什么区别? |
|
|
地板#
发布于:2003-02-11 10:53
能不能再讲的详细点,这样使用“L”就可以了? 一个为两个字节的且以两个NULL结尾的? 一个为长度加个串的结构体? |
|
|
地下室#
发布于:2003-02-11 11:25
好痛苦,怎么会有这么多宏?书上也不讲,DDK里也找不到。
谢谢大头兄。 |
|
|
5楼#
发布于:2003-02-11 21:53
不是,也不是DDK才用的。
为了支持UNICODE。加个L,告诉ms的编译器,这是个UNICODE char,否则会被当作ANSI char的,就错了。 看MSDN,_T和_TEXT宏的说明。 |
|
6楼#
发布于:2003-02-11 22:28
驱动程序内部传送的为UNICODE char(一个字符占两个字节),ANSI char必须转换。
|
|
7楼#
发布于:2003-02-12 11:31
看了一下DDK,明白了一点了,谢谢大家
|
|
|