Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 当我添加代码进行拖放时,wxwidget应用程序在退出时崩溃_C++_Drag And Drop_Wxwidgets - Fatal编程技术网

C++ 当我添加代码进行拖放时,wxwidget应用程序在退出时崩溃

C++ 当我添加代码进行拖放时,wxwidget应用程序在退出时崩溃,c++,drag-and-drop,wxwidgets,C++,Drag And Drop,Wxwidgets,我有一个使用dragandrop的wxwidget应用程序,当我关闭该应用程序时,它会在以下行崩溃: virtual ~wxDropTargetBase() { delete m_dataObject; } 我通过以下方式设置drapand drop: MainWindow::MainWindow() : MainWindowTemplate(NULL), m_fileDropTarget(textSourceFolder) { // connect events th

我有一个使用dragandrop的wxwidget应用程序,当我关闭该应用程序时,它会在以下行崩溃:

virtual ~wxDropTargetBase()
    { delete m_dataObject; }
我通过以下方式设置drapand drop:

MainWindow::MainWindow() : MainWindowTemplate(NULL), m_fileDropTarget(textSourceFolder)
{
    // connect events
    this->Connect(wxEVT_IDLE, wxIdleEventHandler(MainWindow::OnIdle));
    // set window minimum size - work around bug that ignores outer border and sets min size slightly too small
    wxSize minSize = sizerOuter->GetMinSize();
    minSize.SetWidth(minSize.GetWidth() + 16);
    minSize.SetHeight(minSize.GetHeight() + 16);
    SetMinSize(minSize);
    Layout();
    // set file drop target
    SetDropTarget(&m_fileDropTarget);
}
还有我的

class MyFileDropTarget : public wxFileDropTarget
{
public:
    MyFileDropTarget(wxTextCtrl *textCtrl)
    {
        m_fileTextCtrl = textCtrl;
    }
    virtual bool wxFileDropTarget::OnDropFiles (wxCoord x, wxCoord y, const wxArrayString &filenames)
    {
        if (filenames.size() > 0)
        {
            m_fileTextCtrl->SetValue(filenames.Item(0));
            return true;
        }
        return false;
    }
private:
    wxTextCtrl *m_fileTextCtrl;
};
问题是什么?我如何解决它?

看起来您的m_fileDropTarget是一个对象,在这种情况下,它会被删除两次,因为当您调用SetDropTarget时,它会获得传递给它的指针的所有权