我已經嘗試過:如何打開/產卵與油嘴/ gtkmm的文件在Windows
GError *pError = NULL;
string uri = g_filename_to_uri(file.c_str(), NULL, &pError);
if (!g_app_info_launch_default_for_uri(uri.c_str(), NULL, &pError)) {
cout << "Failed to open uri: " << pError->message;
}
在這裏,我得到錯誤「不支持的URI」。我在這裏創建的URI是錯誤的嗎?
我的第二個方法是派生的文件與異步的命令行:
file = quoteStr(file);
try {
Glib::spawn_command_line_async(file);
} catch (Glib::SpawnError error) {
cout << error.what();
} catch (Glib::ShellError error) {
cout << error.what();
}
這裏油嘴:: SpawnError異常與錯誤拋出:「無法執行幫助程序(無效參數)」。我的意思是,當我在Windows cmd中執行帶引號的絕對文件路徑時,它會打開文件(在本例中爲pdf文件)。這個功能有什麼不同嗎?
'我在這裏創建的URI是錯誤的嗎?'沒有你向我們展示這個URI是不可能的......但是對於你的第二個問題,請看我的答案;我懷疑你需要在你的路徑或者你自己的可執行文件所在的目錄下有'gspawn' helper可執行文件。當然,這爲我解決了同樣的問題。 –