该指针要包含哪个头文件?我想制作一个简单的对话框,有两个按钮“Hello world”和“Close”。但对于 OnClose 函数,我在其中输入了 wxTheApp->Exit(),我的 msvc10 编译器显示“未声明的标识符:wxTheApp”。我也在程序中包含了 wx pp.h ,但现在虽然它编译该部分很好,但它在我包含在项目中的文件的 obj 文件中显示了 100 个错误。其中一个错误是
HelloframeGUI.obj : error LNK2001: unresolved external symbol "public: virtual enum wxLayoutDirection __cdecl wxWindow::GetLayoutDirection(void)const " (?GetLayoutDirection@wxWindow@@UEBA?AW4wxLayoutDirection@@XZ)
有人可以帮忙吗?
#include "HelloframeGUI.h"
#include "wx/msgdlg.h"
#include "wx/app.h"
HelloframeGUI::HelloframeGUI( wxWindow* parent )
:
Helloframe( parent )
{
}
void HelloframeGUI::OnShowMessage( wxCommandEvent& event )
{
wxMessageBox( wxT("wxFormBuilder Tutorial") );// TODO: Implement OnShowMessage
}
void HelloframeGUI::OnClose( wxCommandEvent& event )
{
wxTheApp->Exit();// TODO: Implement OnClose
}
看起来wxTheApp问题已经解决了。无论如何,我通常使用 wxGetApp() 来实现此目的:wxGetApp().Close()。 wxGetApp 需要包含应用程序 h 文件(应该是您项目的一部分)。关于链接器错误,这是所需的最少 wxWidgets 库的列表:
#ifdef_DEBUG #pragma 注释(lib,“wxmsw28ud_core.lib”) #pragma 注释(lib,“wxbase28ud.lib”) #别的 #pragma 注释(lib,“wxmsw28u_core.lib”) #pragma 注释(lib,“wxbase28u.lib”) #万一 #pragma 注释(lib,“comctl32.lib”) #pragma 注释(lib,“rpcrt4.lib”)
将其添加到 .cpp 文件之一。如果您的项目不是 Unicode,请从库名称中删除“u”。
这里是关于使用 Microsoft Visual C++ 构建 wxWidgets 应用程序的详细教程。