Проблемы с wxTheApp: необъявленный идентификатор с использованием msvc10 - PullRequest
0 голосов
/ 03 октября 2011

Какой заголовочный файл включить для этого указателя? Я хочу сделать простое диалоговое окно с двумя кнопками «Hello world» и «Close». Но для функции OnClose я набрал внутри нее wxTheApp-> Exit (), и мой компилятор msvc10 говорит: «необъявленный идентификатор: wxTheApp». Я включил в программу также файл wx \ app.h, но теперь, несмотря на то, что он прекрасно компилирует эту часть, он показывает сотни ошибок в файлах obj файлов, которые я включил в проект. Одна такая ошибка HelloframeGUI.obj: ошибка LNK2001: неразрешенный внешний символ "public: virtual enum wxLayoutDirection __cdecl wxWindow :: GetLayoutDirection (void) const" (? GetLayoutDirection @ wxWindow @@ UEBA? AW4wxLayoutDirection @@ZZ)

Может кто-нибудь помочь, пожалуйста?

#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 голосов
/ 03 октября 2011

Вот подробное руководство по созданию приложения wxWidgets с Microsoft Visual C ++.

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

0 голосов
/ 03 октября 2011

Похоже, проблема 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» из имен библиотек.

...