wxTheApp问题:使用msvc10的未声明标识符

时间:2011-10-03 08:36:25

标签: wxwidgets .obj undeclared-identifier

要为此指针包含哪个头文件?我想制作一个带有两个按钮“Hello world”和“Close”的简单对话框。但对于OnClose函数,我在其中键入了wxTheApp-> Exit(),我的msvc10编译器说“未声明的标识符:wxTheApp”。我也在程序中包含了wx \ app.h,但是现在虽然它正在编译该部分,但它在我包含在项目中的文件的obj文件中显示了100个错误。一个这样的错误是 HelloframeGUI.obj:错误LNK2001:未解析的外部符号“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
}

2 个答案:

答案 0 :(得分:0)

看起来wxTheApp问题已经解决了。无论如何,我通常使用wxGetApp():wxGetApp()。Close()。 wxGetApp需要包含应用程序h文件(应该是您项目的一部分)。重置链接器错误,这是最小的wxWidgets库列表:

#ifdef _DEBUG
#pragma comment (lib, "wxmsw28ud_core.lib")
#pragma comment (lib, "wxbase28ud.lib")
#else
#pragma comment (lib, "wxmsw28u_core.lib")
#pragma comment (lib, "wxbase28u.lib")
#endif

#pragma comment (lib, "comctl32.lib")
#pragma comment (lib, "rpcrt4.lib")

将其添加到.cpp文件之一。如果您的项目不是Unicode,请从库名称中删除“u”。

答案 1 :(得分:0)

以下是使用Microsoft Visual C ++构建wxWidgets应用程序的详细教程。

http://wiki.wxwidgets.org/Microsoft_Visual_C%2B%2B_Guide