Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何通过c/c+打开任何应用程序+;采用除qt以外的跨平台方法的程序?_C++_C_Linux_Macos_Cross Platform - Fatal编程技术网

C++ 如何通过c/c+打开任何应用程序+;采用除qt以外的跨平台方法的程序?

C++ 如何通过c/c+打开任何应用程序+;采用除qt以外的跨平台方法的程序?,c++,c,linux,macos,cross-platform,C++,C,Linux,Macos,Cross Platform,嗨,我想打开通过终端或c/c++程序安装在系统上的任何应用程序 我之所以说通过终端或c/c++是因为我们在终端中使用的命令也将在c/c++程序中使用 我提到了这个链接,但它不是跨平台的。我知道system命令与open一起用于从mac启动任何应用程序。例如:-open-通过终端启动一个“Google chrome”,如果在c/c++程序中需要,它将是系统(“open-一个“Google chrome”) 但是如何在linux中打开任何已安装的应用程序呢?还是窗户?如何使其跨平台c/c++??我知

嗨,我想打开通过终端或c/c++程序安装在系统上的任何应用程序

我之所以说通过终端或c/c++是因为我们在终端中使用的命令也将在c/c++程序中使用

我提到了这个链接,但它不是跨平台的。我知道system命令与open一起用于从mac启动任何应用程序。例如:-open-通过终端启动一个“Google chrome”,如果在c/c++程序中需要,它将是系统(“open-一个“Google chrome”)

但是如何在linux中打开任何已安装的应用程序呢?还是窗户?如何使其跨平台c/c++??我知道,基于宏,我们可以识别OS,并基于OS执行相应的命令。但我想知道如何在linux和windows中打开应用程序

示例代码:

#include<iostream>
#include<cstdlib>

int main(){
    system("open -a 'Google chrome'");
    return 0;
}
#包括
#包括
int main(){
系统(“开放-谷歌浏览器”);
返回0;
}
这段代码在Mac上运行,但根据我在linux上的研究,它必须是应用程序的路径,这就足够了。有人能澄清一下吗我需要一个跨平台的解决方案

您可以使用,关于具体启动流程,使用启动程序,或者:

#包括
#包括
#包括
#包括
int main(int argc,char*argv[])
{
质量保证申请a(argc、argv);
//您可以在某些配置文件中指定路径
const QString pathToApp=“/usr/bin/google chrome stable”;
//按给定路径打开应用程序
//无需添加“open”或其他特定于操作系统的前缀
QProcess::StartDetailed(pathToApp);
//或
//在任何操作系统的默认系统浏览器中打开目标web地址
QDesktopServices::openUrl(QUrl(“www.google.com”);
返回a.exec();
}

你在linux上试过了吗?@RoQuOTriX是的,我试过了,但没用!!例如,在linux中,如果我使用/usr/bin/google-chrome,它就可以工作,但不是每个应用程序都可以。所以我需要明确的方法将其包含在c/c++程序中。
system
是唯一存在的标准解决方案。当然,它的工作原理是高度平台特定的。@Karthikgr如果google chrome没有安装在
/usr/bin/google chrome
中,并且您有其他路径,您会怎么做?您知道
PATH
环境变量吗@RoQuOTriX我想我会用“哪个谷歌浏览器”给你我会用的路径!!。但我需要的是,一般来说,我想从c/c++程序启动任何应用程序。有其他解决方案吗?它必须是C++,也许我可以使用一些库,但不能使用Qt。
#include <QtWidgets/QApplication>

#include <QProcess>
#include <QDesktopServices>
#include <QUrl>

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

    // You can specify the path in some config file
    const QString pathToApp = "/usr/bin/google-chrome-stable";

    // Open an application by given path
    // No need to add "open" or some other OS-specific prefix
    QProcess::startDetached(pathToApp);

    // OR
    // Open target web address in a default system browser in any OS
    QDesktopServices::openUrl(QUrl("www.google.com"));

    return a.exec();
}