[英]visual C++ is not compiling my code
這段代碼:
#include <windows.h>
int WINAPI _WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow);
此輸出中的結果:
LNK1120: 1 unresolved externals
LNK2019: unresolved external symbol _WinMain@16 reference in function "int _cdecl invoke_main (void)" (? invoke_main@@Y AHZX)
有人可以告訴我這是什么意思以及如何解決嗎?
LNK1120:1 個未解析的外部
鏈接您的程序時,一個或多個符號未解析。 稍后再談。
LNK2019: 函數“int _cdecl invoke_main (void)”中未解析的外部符號 _WinMain@16 引用(?invoke_main@@Y AHZX)
將缺失的符號之一命名為_WinMain@16
。 最后的@16 本身意味着一個相當長的答案。 最好通過您選擇的網絡搜索來查找“Name Mangling”和“Calling Convention”。
至於為什么缺少_WinMain
,
int WINAPI _WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow);
只聲明程序員向編譯器保證在其他地方
int WINAPI _WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// does stuff
return resultOfStuff;
}
存在。
編譯器會對這個承諾非常滿意並繼續前進,相信程序員會在文件或其他文件中的某個稍后點做好。
一旦所有代碼都編譯成目標文件,鏈接器就會出現並嘗試將這些片段組合到一個程序或庫中。 它遍歷所有對象文件,將承諾的名稱與承諾的項目的地址相匹配。
如果程序員在撒謊,那么鏈接器將找不到承諾的函數,將沒有可用的地址,並將返回一條錯誤消息,指出該函數丟失。
解決方法:實現功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.