首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言問答

C語言Win32 GUI編程:MessageBox中文逗號導致編譯錯誤

     編輯:C 語言問答

VS2008 Win32 項目中 MessageBox 編譯報錯:全角逗號惹的禍

初學者在 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。

避坑建議

  1. 編程時強制切換到英文輸入法,所有符號(逗號、分號、括號、引號)必須為半角。
  2. IDE 設置:啟用“顯示所有字符”可視化空格、Tab、全角符號。
  3. 編譯錯誤提示“syntax error”、“missing ','”、“unexpected character”時,優先檢查該行標點符號。

總結

一個全角逗號導致編譯失敗,是 C/C++ 初學者最常見的“低級錯誤”之一。養成英文輸入法編程習慣,能避免 90% 此類語法錯誤,將精力集中在邏輯與 API 學習上。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved