wxFileDialog ShowModal issue

wxFileDialog ShowModal issue

本文关键字:issue ShowModal wxFileDialog      更新时间:2023-10-16

我是WXWidgets的新手,我正在尝试使用wxfiledialog,但是在使用它一段时间后,我注意到使用它的问题。

致电:

showmodal()//for:wxfiledialog

我的程序增长了〜8000k,下一个通话后,它会增长〜1000k。

下面是我用来测试问题的代码,我认为我在做一些非常错误的事情,不知道我看了一个修复程序,似乎找不到任何东西。

我认为在某个地方分配了内存,但从未分配...

任何可以帮助解决这个问题的人,都将不胜感激!

#include <wxwxprec.h>
class MyApp : public wxApp {
public:
    virtual bool OnInit();
};
class My_Frame : public wxFrame {
public:
    My_Frame() : wxFrame(NULL, wxID_ANY, _T("Test"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE & ~wxRESIZE_BORDER & ~wxMAXIMIZE_BOX) {
        wxButton* newButton = new wxButton(this, LOAD_FILE_BROWSER_ID, "PRESS ME");
    }
    void on_button_press(wxCommandEvent& event);
    enum ButtonID {
        LOAD_FILE_BROWSER_ID = wxID_HIGHEST + 1
    };
    DECLARE_EVENT_TABLE()
};
IMPLEMENT_APP(MyApp)
bool MyApp::OnInit() {
    My_Frame* newFrame = new My_Frame;
    newFrame->Show(true);
    return true;
}
BEGIN_EVENT_TABLE(My_Frame, wxFrame)
EVT_BUTTON(My_Frame::ButtonID::LOAD_FILE_BROWSER_ID, My_Frame::on_button_press)
END_EVENT_TABLE()
void My_Frame::on_button_press(wxCommandEvent& WXUNUSED(event)){
    wxFileDialog FileLoad(this, "Load", "", "", "", wxFD_OPEN | wxFD_FILE_MUST_EXIST);
    FileLoad.ShowModal();
}
int main(int argc, char* argv[]){
    wxEntryStart(argc, argv);
    wxTheApp->CallOnInit();
    wxTheApp->OnRun();
}

打开一个文件对话框加载Windows下的许多DLL(您必须在其中进行测试),其中许多是第三方(外壳扩展程序等),并且可能具有内存泄漏。不幸的是,如果确实如此,除了找到DLL泄漏并停止使用它之外,您无能为力。为了确保它不是可以在线编写的WXWIDGETS问题,或者在线查找一个简单的Win32应用程序,直接使用"打开文件"对话框,并检查它是否表现出相同的症状 - 确实应该。