當前位置:編程學習大全網 - 網站源碼 - 到 LPCWSTR 的類型不兼容,這是怎麽回事啊?

到 LPCWSTR 的類型不兼容,這是怎麽回事啊?

開頭#include <TCHAR.h>

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)

  • 上一篇:江西南昌少兒編程的機構推薦嗎?
  • 下一篇:同花順數據公式源代碼
  • copyright 2024編程學習大全網