首頁 >後端開發 >C++ >為什麼在 C 中使用 wWinMain 時 MinGW 會拋出「未定義的 WinMain 引用」錯誤?

為什麼在 C 中使用 wWinMain 時 MinGW 會拋出「未定義的 WinMain 引用」錯誤?

Linda Hamilton
Linda Hamilton原創
2024-11-05 11:23:02298瀏覽

Why does MinGW throw an

在C (MinGW) 中使用wWinMain 時解決對WinMain 的未定義引用

嘗試使用對WinMain 時(HINSTANC, HINSst. PWSTR pCmdLine , int nCmdShow) 作為MinGW 下C 中的程式入口點,可能會出現「對WinMain 的未定義引用」錯誤。

原因:

MinGW,特別是舊版本,本身不支援 wWinMain 入口點,它需要寬字元 (WCHAR) 命令列參數。

解:

有兩種可能的解決方案:

1。使用 -municode 標誌:

較新版本的 MinGW 支援 -municode 連結器標誌,該標誌切換到允許使用 wWinMain 的備用啟動代碼。將此標誌新增至命令列、IDE 中的連結器選項或Makefile:

g++ other_options_and_arguments -municode

2.使用WinMain 入口點:

對於舊版的MinGW或者如果您不想使用-municode 標誌,您可以恢復使用標準WinMain 入口點。這需要如下修改您的程式碼:

  • 將wWinMain 更改為WinMain
  • 將PWSTR pCmdLine 更改為PSTR pCmdLine

說明:

如果稍後需要在程式中存取Unicode 命令列參數,請使用LPWSTR cmd_line = GetCommandLineW();而不是使用WinMain 參數。

以上是為什麼在 C 中使用 wWinMain 時 MinGW 會拋出「未定義的 WinMain 引用」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn