启动URL - 跨平台(C++)

het*_*lek 1 c++ url qt

我不确定这是否可行,但我试图在C++的用户默认浏览器中打开一个URL.我只想使用'ShellExecute',但我试图让它跨平台.任何人都知道这是可能的,如果是的话?

通过跨平台我的意思是3:

  • Linux的
  • 视窗
  • 苹果电脑

我确实谷歌搜索了太久了,一无所获.谢谢你的帮助 :)

Roh*_*bhu 5

您最好的选择是使用类似的跨平台库Qt或类似的东西.Qt有一个很好的类QDesktopServices,你可以用来做它:

QDesktopServices::openUrl(QUrl("http://google.com", QUrl::TolerantMode));
Run Code Online (Sandbox Code Playgroud)

根据文件:

在适当的Web浏览器中为用户的桌面环境打开给定的URL,如果成功则返回true; 否则返回false.

请注意,这将为所有平台添加对Qt的依赖性,这可能是一项非常简单的任务.最好为每个平台使用自定义代码,并设置编译器指令以查看您所在的操作系统,并根据该操作系统运行浏览器启动代码.

比如,如果它是在windows上编译的,你可以只编译ShellExecute函数,如果它在Linux上运行,那么根据桌面环境你可以运行相应的命令.

但是,如果你真的在制作一个跨平台的应用程序,那么像Qt这样的依赖关系也不会太糟糕,因为它会帮助解决许多跨平台的问题(比如在系统托盘中保留一个图标,多媒体播放等).

没有库,没有标准的C++方法可以在所有平台上运行.

  • 嗯,这很好知道.只需确保下次提到您在问题中使用的框架并使用相应的标签:) (2认同)