从C ++打开文件对话框时JNI内存泄漏?

时间:2015-03-24 02:14:23

标签: java c++ string java-native-interface showdialog

问题:单击openfiledialog时挂起。

右边,当我点击我的C ++程序中的openfiledialog按钮时,它会输入并询问我需要使用哪个文件,但现在它完全挂起我点击按钮的那一刻。

目前我有一个在C ++中成功运行的C ++程序。所以我决定用Java试用JNI。我将C ++程序导入DLL,成功使用java命令执行C ++程序。整个程序工作,只有一部分不起作用,这是openfiledialog。

我不知道为什么,但我坚信它是showdialog到位时内存部分的一部分,任何专家都可以对此有所了解吗?感谢。

showdialog的C ++代码。

private: System::Void btnOpen_Click(System::Object^  sender, System::EventArgs^  e) {
            vector<vector<int>> file;
            vector<int> column;
            int col = 0;
            int row = 0;

            openFileDialog->ShowDialog(); <- Does not even execute showdialog at all

            string test = msclr::interop::marshal_as<std::string>(openFileDialog->FileName); <-- I strongly suspect this part has an issue that causes the crash
            cout << test << endl;
file.open(test);
.... (does the normal appending of text into the vectors)
file.close(test);

1 个答案:

答案 0 :(得分:0)

我发现我导入的DLL我没有在metagen中添加到相关文件夹,这就是它导致错误的原因。

全部谢谢:)