C++ Q剪贴板:尝试从Qt应用程序复制文本并粘贴到记事本++引发0xC0000374堆已损坏错误

6yjfywim  于 2022-12-20  发布在  其他
关注(0)|答案(1)|浏览(61)

我正在开发一个Windows平台的C++ Qt桌面应用程序,我使用的是Qt的6.4版本,我用MSVC 2019编译代码(x64的代码是19.29.30146)。
我希望能够从Qt应用程序复制文本并将其粘贴到另一个程序(如记事本++)中。不幸的是,当我试图粘贴剪贴板的内容时,我得到了"0xC0000374 A heap has been corrupt"错误。
我用来做一个非常简单的测试的代码如下:

int main(int argc, char* argv[])
{
    QApplication app(argc, argv);

    ...
 
    QClipboard *clipboard = QGuiApplication::clipboard();
    clipboard->setText("random text");

    MainWindow main_window;
    main_window.show();

    return app.exec();
}

有人遇到过同样的问题吗?有什么解决办法吗?
先谢了。

lmvvr0a8

lmvvr0a81#

我发现“heap has been corrupt”错误仅在MSVC Sanitizer激活时(即,将选项-fsanitize=address传递给编译器时)发生。
只要我用“正常”调试模式编译,一切都能正常工作。

相关问题