0

このポインターに含めるヘッダー ファイルはどれですか? 「Hello world」と「Close」の2つのボタンがあるシンプルなダイアログボックスを作りたいです。しかし、OnClose 関数の場合、その中に wxTheApp->Exit() と入力すると、msvc10 コンパイラで「宣言されていない識別子: wxTheApp」と表示されます。プログラムに wx\app.h も含めましたが、その部分は正常にコンパイルされていますが、プロジェクトに含まれているファイルの obj ファイルに数百のエラーが表示されています。そのようなエラーの 1 つに 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
}
4

2 に答える 2

0

wxTheApp の問題は解決したようです。とにかく、私は通常これに wxGetApp() を使用します: wxGetApp().Close()。wxGetApp には、アプリケーションの h-file を含める必要があります (プロジェクトの一部である必要があります)。リンカ エラーに関して、これは最小限必要な wxWidgets ライブラリのリストです。

#ifdef _DEBUG
#pragma コメント (lib、"wxmsw28ud_core.lib")
#pragma comment (lib, "wxbase28ud.lib")
#そうしないと
#pragma comment (lib, "wxmsw28u_core.lib")
#pragma comment (lib, "wxbase28u.lib")
#endif

#pragma コメント (lib、"comctl32.lib")
#pragma コメント (lib、"rpcrt4.lib")

.cpp ファイルの 1 つに追加します。プロジェクトが Unicode でない場合は、ライブラリ名から「u」を削除してください。

于 2011-10-03T08:48:53.227 に答える
0

これは、Microsoft Visual C++ を使用して wxWidgets アプリケーションを構築するための詳細なチュートリアルです。

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

于 2011-10-03T12:44:21.097 に答える