にglibの/ 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を」得ます。私がここで作るウリは間違っていますか?
私の第二のアプローチは、非同期コマンドラインでファイルを起動することでした。ここでは
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を表示しないと言うことはできません...しかし、2番目の問題については、私の答えを見てください。 'gspawn'ヘルパー実行ファイルをあなたのパスまたはあなた自身の実行可能ファイルと同じディレクトリに置く必要があると思います。確かに、それは私にとって同じ問題を解決しました。 –