目前我WinMain在 C 中遇到問題(特別是在 Visual Studio 中)。
例如...
#include <stdio.h>
#include <Windows.h>
int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR lpCmdLine, INT nCmdShow)
{
return(0);
}
1>------ Build started: Project: GameB, Configuration: Debug x64 ------
1>LIBCMTD.lib(exe_main.obj) : error LNK2019: unresolved external symbol main referenced in function "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ)
1>E:\James\VisualStudio\CProjects\GameB\x64\Debug\GameB.exe : fatal error LNK1120: 1 unresolved externals
1>Done building project "GameB.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
只是這個基本設定給了我一個“WinMain 的注釋不一致”警告。兩天來我一直在尋找任何幫助,我最接近答案的是人們在 C 的背景關系中談論 WinMain。我覺得這是 Visual Studio 的一個問題,因為我最初只是使用 VS Code 并設法讓一個應用程式(一個生成彈出視窗的應用程式)編譯和運行。
uj5u.com熱心網友回復:
你只是設定你的winmain錯誤。這應該有效:
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow);
或者
INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR lpCmdLine, INT nCmdShow)
{
return 0;
}
不要忘記 #include <Windows.h> 并將子系統更改為 windows。
uj5u.com熱心網友回復:
要使用WinMain程式入口點,您需要告訴聯結器以“Windows”子系統為目標,而不是構建控制臺應用程式。否則,聯結器將尋找(但找不到)mainC 程式的標準入口點。
在解決方案資源管理器中,右鍵單擊您的專案并選擇“屬性”。然后導航到“Linker -> System”頁面并選擇“Windows (/SUBSYSTEM:WINDOWS)”作為目標:

在您的“注釋不一致”警告中,請參閱此 Q/A:“WinMain”的注釋不一致
此外,正如SNO 的回答中所述,您應該將該WINAPI屬性添加到您的WinMain函式中。
uj5u.com熱心網友回復:
您需要通過在解決方案資源管理器中右鍵單擊您的專案,選擇,然后轉到并設定為來將子系統設定Console為設定。WindowspropertiesLinker->SystemSubSystemWindows(/SUBSYSTEM:WINDOWS)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/490870.html
