1

所以我有这个 cpp 文件,我的 cl_Page 类的构造函数。

cl_Page::cl_Page(cl_SoftRoot *parent_param)/* : bgimage(nullptr)*/{
    parent_softroot = parent_param;
    parent_type = 2;
    id[0] = '\0';
    SetColor(bgcolor, 0xffffffff);
    //textboxes.resize(0);
    //buttons.resize(0);
    //images.resize(0);
}

问题是即使在构造函数开始运行之前(parent_softroot 尚未设置)我的程序崩溃了。调用堆栈如下所示:

#0 77C460CB strcat() (C:\WINDOWS\system32\msvcrt.dll:??)
#1 7C9140BB ntdll!RtlDosApplyFileIsolationRedirection_Ustr() (C:\WINDOWS\system32\ntdll.dll:??)
#2 00401905 cl_Page::cl_Page(this=0x738a58, parent_param=0x737810) (F:\Scoala\C++\EduSoftViewer_Parser\sources\classes\soft_tree\page.cpp:10)
#3 00402195 cl_SoftRoot::cl_SoftRoot(this=0x737810) (F:\Scoala\C++\EduSoftViewer_Parser\sources\classes\soft_tree\softroot.cpp:4)
#4 004031F4 p2_parse_root(parent_x=0x22bdc0) (F:\Scoala\C++\EduSoftViewer_Parser\sources\parser\parser.cpp:166)
#5 00402D64 parser_wrapper(filename=0x47c1f2 "Test_Software.xml") (F:\Scoala\C++\EduSoftViewer_Parser\sources\parser\parser.cpp:24)
#6 00402BB8 main() (F:\Scoala\C++\EduSoftViewer_Parser\sources\main.cpp:12)

使用 cl_SoftRoot 构造函数中的初始值设定项列表调用 cl_Page 构造函数。

我很乐意提供所需的任何信息。

编辑: cl_Page 类标题:

 class cl_Page{
    public:
    cl_Page(cl_LessonMoment *parent_param);
    cl_Page(cl_SoftRoot *parent_param);
    int parent_type;
    cl_LessonMoment *parent_lmoment;
    cl_SoftRoot *parent_softroot;

    char id[256]; //identification

    //<content>
    //Backgrounds.
    str_Color bgcolor;
    cl_Image bgimage;

    //Actual content
    vector<cl_Textbox> textboxes;
    vector<cl_Button> buttons;
    vector<cl_Image> images;
    //</content>

    cl_Textbox* AddTextbox();
    cl_Button* AddButton();
    cl_Image* AddImage(char *filename = nullptr);
};
4

0 回答 0