无法从教程中获取wxWidgets示例以工作

Can't get wxWidgets example from tutorial to work

本文关键字:工作 wxWidgets 获取 教程      更新时间:2023-10-16

我刚刚开始学习wxwidgets,并且经验为零。建议我检查本教程。
因此,我在代码块13.12(Win 7)中创建了一个"控制台应用程序",选择了WXWIDGETS 3.0,并试图将代码从教程中插入我的代码。代码块在项目创建时为我提供的基本代码是:

#include <iostream>
using namespace std;
int main()
 {
     // "hello world" with cout
     return 0;
 }

尽管试图以各种方式插入教程代码,但该程序从未编译,但我总是遇到很多错误。除了缺乏使用WXWIDGETS的技能外,我怀疑我已经安装了WXWidgets 3.0的原因之一,教程可能正在使用较旧版本。有人可以向我展示如何在CodeBlocks项目中编写此代码以使其成功构建和运行吗?谢谢。

编辑:

我尝试编译的代码是:

#include <iostream>
using namespace std;
#include <wx/wx.h>

int main()
{
    class OurApp : public wxApp
{
    bool OnInit()
    {
        wxFrame* frame = new wxFrame(NULL, wxID_ANY, "Our First App");
        frame->Show();
        return true;
    }
};
IMPLEMENT_APP(OurApp)
return 0;
}

此特定版本返回错误:

n: projekticpp wxtestTutorial2 main.cpp | 28 |错误:string constand |n: projekticpp wxtesttutorial2 main.cpp | 28 |错误:在" {" token |n: projekticpp wxtesttutorial2 main.cpp | 28 |错误:在" {'{'token |

)之前不允许使用功能定义。

但是尝试将代码放在一起的其他不同方式,我得到了各种不同的代码。

IMPLEMENT_APP()或更好的是,wximplement_app()是必须在全局范围中发生的宏,您不能将其放入main()函数中。

,实际上,如果您使用它,则根本不需要main(),因为它是由此宏扩展生成的。

最后,虽然您还没有遇到此问题,但一旦代码编译了它可能不会链接,因为您选择了错误的应用程序类型:它应该是" gui"(或也许是" Windows")而不是一个"控制台"应用程序。

您是否包括库(all .a)?查看本教程:

http://wiki.codeblocks.org/index.php?title=compiling_wxwidgets_3.0.0.0.to_develod_code_code:: blocks_(msw)