刚开始学习wxWidgets,零经验。我被推荐检查 this tutorial .
因此,我在代码块 13.12 (Win 7) 中创建了一个“控制台应用程序”,选择了 wxWidgets 3.0,并尝试将教程中的代码插入到我的代码中。 Code Blocks 在项目创建时提供给我的基本代码是:
#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|错误:在字符串常量之前需要不合格的 id| N:\projekticpp\wxTestTutorial2\main.cpp|28|错误:此处不允许在“{”标记之前定义函数| N:\projekticpp\wxTestTutorial2\main.cpp|28|错误:这里不允许在'{'标记之前定义函数|
但是尝试其他不同的方式将代码放在一起,我得到了各种不同的代码。
最佳答案
IMPLEMENT_APP()
或者,更好的是 wxIMPLEMENT_APP()是一个必须出现在全局范围内的宏,你不能把它放在 main()
函数中。
而且,事实上,如果您使用它,您根本不需要 main()
,因为它是由这个宏展开生成的。
最后,虽然您还没有遇到这个问题,但一旦代码编译后它可能不会链接,因为您选择了错误的应用程序类型:它应该是“GUI”(或者可能是“Windows”)而不是“控制台”应用程序。
关于c++ - 无法使教程中的 wxWidgets 示例正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21641281/