本教程(http://zetcode.com/gui/wxwidgets/helperclasses/)中使用的wxPuts方法不起作用。是否更改了,该班级不再可用?
我尝试在线搜索有关wxPuts和wxPrintf的一些文档,但是在wxWidg网站的帮助文件中找不到任何相关内容。
#include <wx/textfile.h>
int main(int argc, char **argv)
{
wxTextFile file(wxT("test.c"));
file.Open();
wxPrintf(wxT("Number of lines: %d\n"), file.GetLineCount());
wxPrintf(wxT("First line: %s\n"), file.GetFirstLine().c_str());
wxPrintf(wxT("Last line: %s\n"), file.GetLastLine().c_str());
wxPuts(wxT("-------------------------------------"));
wxString s;
for ( s = file.GetFirstLine(); !file.Eof();
s = file.GetNextLine() )
{
wxPuts(s);
}
file.Close();
}
答案 0 :(得分:3)
wxWidgets为使用字符串的所有标准CRT函数提供包装,以允许使用wxString
或wchar_t
(宽)字符串进行调用。这些包装没有记录,因为重新记录标准函数没有多大意义,但是基本上对于标准库中的任何foo(const char* s)
,您都需要在wxFoo(const wxString& s)
标头中声明wx/crt.h
。但是,必须包含此标头才能获得这些声明。
还请注意,大多数wxWidgets功能不能在library is initialized之前使用。
TL; DR:您缺少#include <wx/crt.h>
。