簡體   English   中英

Visual C++ 沒有編譯我的代碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM