我正在尝试将指针的地址转换为 wxWidgets 库的 wxString。
我有这本书,它提供了一个基于控制台的示例来解释 C++ 中的输入/输出流系统。在这里,我们可以打印一些指针的地址,而不用太复杂
const char *const variable = "again";
cout << static_cast<void*>(variable);
到目前为止,我可以理解这个例子,但是(现在是复杂的)我想从例子中制作一些 GUI 来训练自己并与本书一起探索 wxWidgets 类。我已经成功地使用 wxAny 类的 As() 方法进行了一些转换,甚至在没有警告或错误的情况下编译它。但是在执行时,尝试转换类型时出现“断言失败”。
如果我让程序继续,它会在我的 wxTextCtrl 中打印,例如:
ﻌњ̎X(
有任何想法吗??(顺便说一句,我在 Windows 7 系统中将 CodeBlocks 与 Mingw32 和 wxWidgets 3.0 一起使用)这是给我断言失败的代码:
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。我对可能出现的问题有一个要点,但是,我找不到在文本控件(不是控制台屏幕)中打印指针地址的原始问题的解决方案