Clion为什么无法识别WxPuts?

时间:2019-07-13 10:42:44

标签: wxwidgets

本教程(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();
}

1 个答案:

答案 0 :(得分:3)

wxWidgets为使用字符串的所有标准CRT函数提供包装,以允许使用wxStringwchar_t(宽)字符串进行调用。这些包装没有记录,因为重新记录标准函数没有多大意义,但是基本上对于标准库中的任何foo(const char* s),您都需要在wxFoo(const wxString& s)标头中声明wx/crt.h 。但是,必须包含此标头才能获得这些声明。

还请注意,大多数wxWidgets功能不能在library is initialized之前使用。

TL; DR:您缺少#include <wx/crt.h>