wxWidgets 演示的简单示例无法链接

问题描述

我正在尝试从 zetcode's first gui sample code 学习 wxWidgets 我创建了一个 VisualStudio 2019 空项目,将 wxwidgets.props 属性表应用到我的项目中,并按照教程创建了文件 simple.cpp、simple.h、main.cpp 和 main.h。 解决方案资源管理器显示

Solution Explorer Screenshot

这是Main.h的内容

#pragma once
#include <wx/wx.h>

class MyApp : public wxApp
{
public:
    virtual bool OnInit();
};

DECLARE_APP(MyApp);

这是Main.cpp的代码

#include "Main.h"
#include "Simple.h"

IMPLEMENT_APP(MyApp);

bool MyApp::OnInit()
{
    Simple* simple = new Simple(wxT("Simple"));
    simple->Show(true);

    return true;
}

这里是Simple.h的代码

#pragma once
#include <wx/wx.h>

class Simple : public wxFrame
{
public:
    Simple(const wxString& title);

};

这里是Simple.cpp的代码

#include "Simple.h"

Simple::Simple(const wxString& title)
    : wxFrame(NULL,wxID_ANY,title,wxDefaultPosition,wxSize(250,150))
{
    Centre();
}

遗憾的是,该项目无法链接显示以下错误消息:

Severity    Code    Description Project File    Line    Suppression State
Error   LNK2019 unresolved external symbol _main referenced in function "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ)   Simple  D:\devt\WxWidgets\ZetCode\MSVCRTD.lib(exe_main.obj) 1   

解决方法

感谢 David C Rankin 带领我找到了解决方案: 我去了项目>配置属性>链接器>系统>子系统 并将其从控制台更改为 Windows (/SUBSYSTEM:WINDOWS) 这似乎解决了问题,但我希望有人能解释一下我所做的事情的含义。