初學者在 Visual Studio 2008 中建立 Win32 專案嘗試彈出消息框,代碼編寫看似正確但編譯失敗,錯誤提示往往指向 MessageBox 參數列表。實際原因是中文輸入法下的全角逗號(、)導致語法錯誤。
MessageBox(NULL, TEXT("世界你好"),TEXT("問好"),MB_OK);
// ↑ 這裡是全角逗號,非 C 語法合法字符
#include <windows.h>
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow) {
MessageBox(NULL, TEXT("世界你好"), TEXT("問好"), MB_OK);
// ↑ 半角逗號
return 0;
}
TEXT("字符串") 宏:在 Unicode 構建下展開為 L"字符串"(寬字符),在多字節構建下為普通字符串,保證字符集兼容。MB_OK:預定義常量,表示僅包含“確定”按鈕。其他常用:MB_YESNO、MB_ICONINFORMATION、MB_ICONERROR 等可組合使用(按位或 |)。_tWinMain:TCHAR 版本入口點,配合 UNICODE/_UNICODE 宏自動映射為 wWinMain 或 WinMain。一個全角逗號導致編譯失敗,是 C/C++ 初學者最常見的“低級錯誤”之一。養成英文輸入法編程習慣,能避免 90% 此類語法錯誤,將精力集中在邏輯與 API 學習上。