即使在简单的代码上也能获得LNK2019和LNK1120

时间:2015-09-24 01:10:54

标签: c++

我决定学习C ++ DirectX,但每当我编译/调试代码时,即使是最简单的代码,我也会得到LNK2019:函数“int __cdecl_main(void)”中引用的未解析的外部符号_WinMain @ 16(?invoke_main @@ YAHXZ)错误和LNK1120。

我测试了两个不同的代码,一个是类,另一个只是int函数:

#pragma once

class Main
{
public:
    Main();
    ~Main();
};

Main::Main(int x)
{

}

Main::~Main()
{

}

int example()
{
    return 0;
}

2 个答案:

答案 0 :(得分:1)

首先,你应该帮自己一个忙,并从一本书中正确学习C ++。 C ++的设计者和实现者Bjarne Stroustrup有一本很棒的书可以教你很多:Programming: Principles and Practice using C++

您的程序无法链接,因为没有main()功能,这是必需的。

As Steephen has pointed out already in his answer,您可以更改您的计划,使其至少包含 以下内容:

int main()
{
    return 0;
}

看起来您试图用main()替换example(),但您的程序和C ++程序需要main(),因为它是主要的切入点你的程序。您可能还想阅读http://www.cplusplus.com/doc/tutorial/program_structure/

答案 1 :(得分:0)

为了让您的课程定义保持完整,请执行以下更改

Main::Main() // you don't need a parameter for your constructor
{

}

int main() //Not int example() because you need a main for your program
{
    return 0;
}