为什么我不能在Qt中使用普通的C++类

Mor*_*eus 0 c++ qt

任何人都可以告诉我,为什么我不能在Qt程序中使用普通的C++类.如果有任何类没有从QObject继承,编译器会给我一个名为的链接错误,

error LNK2019: unresolved external symbol _main referenced in function _WinMain@16
Run Code Online (Sandbox Code Playgroud)

我正在使用Qt 4.5.2(由我自己编译)和vs2005.请帮我解决这个问题!

编辑:

例...

//UnitManager.h

class UnitManager
{
public:
//-Some code
};
Run Code Online (Sandbox Code Playgroud)

//CivilizationViewer.h

class CivilizationViewer : public QMainWindow
{
Q_OBJECT
//-some code
};
Run Code Online (Sandbox Code Playgroud)

//主要

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    CivilizationViewer w;
    w.show();
    return a.exec();
}
Run Code Online (Sandbox Code Playgroud)

如果我在CivilizationViewer.h中包含UnitManager.h编译器会给我这个错误.(虽然我在main.cpp编译器中包含UnitManager.h但会给我错误)

Eva*_*haw 8

您提供的错误与您正在使用的类没有任何关系.它看起来与您为应用程序设置的入口点有关.通常你想在Qt程序中使用main()而不是WinMain().确保您的配置设置正确.

您在问题中包含了一些代码.这是全部吗?如果是这样,你就错过了一个主要功能.

  • 那么删除#include"UnitManager.h"这一行会导致构建成功吗?这看起来很奇怪.我可以提供一些建议.首先,确保UnitManager类的末尾有一个分号.(它不在您的问题中.)其次,确保您的项目配置为控制台程序而不是Windows程序.如果是Windows程序,Visual Studio将寻找WinMain而不是main. (2认同)