使用者工具

網站工具


visual_c_plusplus

差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

下次修改
前次修改
visual_c_plusplus [2024/04/08 08:58]
don 建立
visual_c_plusplus [2024/04/15 08:21] (目前版本)
don
行 1: 行 1:
 ====== Visual C++ 研究 ====== ====== Visual C++ 研究 ======
 +
 +驅動程式中使用\\
 +KdPrint 而盡量不要使用 DbgPrint\\
 +KdPrint 會根據編譯版本看是否呼叫 DbgPrint或者不輸出\\
 +Checked --> KdPrint --> DbgPrint\\
 +Free --> KdPrint -->  XXX\\
 +
 +DbgView 免費提供 可在微軟的網站中找到\\
 +DbgView 可以同時監聽內核和 Win32 上層應用程式發送的除錯訊息。\\
 +
 +^符号 ^格式说明符 ^类型 ^
 +|%c, %lc|ANSI字符 |char|
 +|%C, %wc|宽字符 |wchar_t|
 +|%d, %i |十进制有符号整数 |int|
 +|%D |十进制__int64 |__int64|
 +|%L |十六进制的LARGE_INTEGER |LARGE_INTEGER|
 +|%s, %ls|NULL终止的ANSI字符串 |char*|
 +|%S, %ws|NULL终止的宽字符串 |wchar_t*|
 +|%Z |ANSI_STRING字符串 |ANSI_STRING|
 +|%wZ |UNICODE_STRING字符串 |UNICODE_STRING|
 +|%u |十进制的ULONG |ULONG|
 +|%x |小写字符十六进制的ULONG |ULONG|
 +|%X |大写字符十六进制的ULONG |ULONG|
 +|%p |指针Pointer 32/64位 | |
 +
 +根据DDK上说明,Unicode格式(%C, %S, %lc, %ls, %wc, %ws, and %wZ)只能在 IRQL = PASSIVE_LEVEL時才能使用。\\
 +需要注意 中文的 WCHAR 和 UNICODE_STRING可能会被截断打印不出来 \\
 +需要转化为 CHAR 和 ANSI_STRING 来打印 \\
 +ANSI_STRING ansiString;  //省去对ansiString初始化  \\
 +KdPrint(("%Z\n", &ansiString));    //注意是%Z  \\
 +  
 +UNICODE_STRING;  //省去对uniString初始化  \\
 +KdPrint(("%wZ\n", &uniString));    //注意是%wZ  \\
  
visual_c_plusplus.1712537906.txt.gz · 上一次變更: 2024/04/08 08:58 由 don