ポインタのアドレスを wxWidgets ライブラリの wxString に変換しようとしています。
私は、C++ の入出力ストリーム システムを説明するコンソール ベースの例を紹介するこの本を持っています。ここでは、いくつかのポインタのアドレスをあまり複雑にすることなく出力できます。
const char *const variable = "again";
cout << static_cast<void*>(variable);
これまでのところ、例は理解できましたが (複雑な問題です)、例から GUI を作成して自分自身を訓練し、本と一緒に wxWidgets クラスを調べたいと思います。wxAny クラスの As() メソッドを使用していくつかの変換に成功し、警告やエラーなしでコンパイルすることさえできました。しかし、実行時に型を変換しようとすると「Assert failure」が発生します。
プログラムを続行させると、wxTextCtrl に次のように出力されます。
ﻌњ̎X(
何か案は??(ところで、Windows 7システムでMingw32およびwxWidgets 3.0でCodeBlocksを使用しています)これは、アサートの失敗を引き起こすコードです:
void ConsoleFrame::OnbtnFrase2Click(wxCommandEvent& event)
{
string chaine2("Value of the pointer: ");
void* puntero = &chaine2;
wxAny anyThing= puntero;
consoleText->AppendText(anyThing.As<wxString>());
}
これは、アサート失敗エラーを発生させるメソッドです。以前にコードを修正してくれた @Grady に感謝します。void* を wxString に変換できないようです。問題の要点はわかっていますが、ポインターのアドレスをテキスト コントロール (コンソール画面ではなく) に出力するという元の問題の解決策が見つかりません。