我已经尝试过:如何打开/产卵与油嘴/ 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可执行文件。当然,这为我解决了同样的问题。 –