使用者工具

網站工具


visual_c_plusplus

差異處

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

連向這個比對檢視

Both sides previous revision 前次修改
下次修改
前次修改
visual_c_plusplus [2024/04/15 08:15]
don
visual_c_plusplus [2024/04/15 08:21] (目前版本)
don
行 1: 行 1:
 ====== Visual C++ 研究 ====== ====== Visual C++ 研究 ======
  
-驅動程式中使用 +驅動程式中使用\\ 
-KdPrint 而盡量不要使用 DbgPrint +KdPrint 而盡量不要使用 DbgPrint\\ 
-KdPrint 會根據編譯版本看是否呼叫 DbgPrint或者不輸出 +KdPrint 會根據編譯版本看是否呼叫 DbgPrint或者不輸出\\ 
-Checked --> KdPrint --> DbgPrint +Checked --> KdPrint --> DbgPrint\\ 
-Free --> KdPrint -->  XXX+Free --> KdPrint -->  XXX\\
  
-DbgView 免費提供 可在微軟的網站中找到 +DbgView 免費提供 可在微軟的網站中找到\\ 
-DbgView 可以同時監聽內核和 Win32 上層應用程式發送的除錯訊息。+DbgView 可以同時監聽內核和 Win32 上層應用程式發送的除錯訊息。\\
  
 ^符号 ^格式说明符 ^类型 ^ ^符号 ^格式说明符 ^类型 ^
 |%c, %lc|ANSI字符 |char| |%c, %lc|ANSI字符 |char|
-%C, %wc 宽字符 wchar_t +|%C, %wc|宽字符 |wchar_t| 
-%d, %i 十进制有符号整数 int +|%d, %i |十进制有符号整数 |int| 
-%D 十进制__int64 __int64 +|%D |十进制__int64 |__int64| 
-%L 十六进制的LARGE_INTEGER LARGE_INTEGER +|%L |十六进制的LARGE_INTEGER |LARGE_INTEGER| 
-%s, %ls NULL终止的ANSI字符串 char* +|%s, %ls|NULL终止的ANSI字符串 |char*| 
-%S, %ws NULL终止的宽字符串 wchar_t* +|%S, %ws|NULL终止的宽字符串 |wchar_t*| 
-%Z ANSI_STRING字符串 ANSI_STRING +|%Z |ANSI_STRING字符串 |ANSI_STRING| 
-%wZ UNICODE_STRING字符串 UNICODE_STRING +|%wZ |UNICODE_STRING字符串 |UNICODE_STRING| 
-%u 十进制的ULONG ULONG +|%u |十进制的ULONG |ULONG| 
-%x 小写字符十六进制的ULONG ULONG +|%x |小写字符十六进制的ULONG |ULONG| 
-%X 大写字符十六进制的ULONG ULONG +|%X |大写字符十六进制的ULONG |ULONG| 
-%p 指针Pointer 32/64位 +|%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.1713140153.txt.gz · 上一次變更: 2024/04/15 08:15 由 don