sprintf(...)
改為
_stprintf(...)
然後所有雙引號字符串或單引號的字符
"Mouse Clicking" 'A'
這樣的都改為
_T("Mouse Clicking") _T('A')
所有
char
改為
TCHAR
原因在於字符(串)實際上有char(*)(LPSTR,LPCSTR)和wchar_t(*)(LPWSTR,LPCWSTR)兩種類型,這兩種類型有各自的壹套字符串操作函數(包括基礎庫、windowsAPI等都是),而windows程序通常會默認使用wchar_t系列,因此所有字符串都需要wchar_t*類型,所有函數都用wchar_t匹配的函數。
而_T()則是自動將字符串轉換為對應類型的字符串,_stprintf函數(實際上是宏)會自動匹配應有的函數(char匹配sprintf,wchar_t匹配swprintf)
事實上所有涉及字符串的函數大多都是三個壹組的,比如圖中涉及的有:
sprintf,swprintf,_stprintf
MessageBoxA,MessageBoxW,MessageBox
……
三個函數依次為:char專用函數,wchar_t專用函數,變化匹配函數(雖設置環境自動匹配char或wchar_t)