qt调用外部exe程序并且将exe程序一起打包

qt调用外部exe程序并且将exe程序一起打包,第1张

你试试作为一个资源来运行看行不行,或者将exe作为一个资源,然后运行时以二进制的形式读取,再将读取到的二进制信息写入到临时文件中,运行临时文件。或者直接将资源中得exe保存到系统临时文件夹中进行运行。

只是个思路,没试过,你试试

先贴上源代码:

#include<QProcess>

void test6::notepad()

{

QProcess pro = new QProcess;

pro->startDetached("C://Program Files (x86)//Notepad++//notepad++exe", QStringList());

}

说明:

1 使用Qprocess的startDetached()方法,当前程序关闭时,调用的外部程序能够照常运行。

2 第一个参数是外部exe路径,当exe路径中含有空格时,就需要用到第二个参数,如果外部应用程序只需要exe这一个就可以打开时,第二个参数写成QStringList()就可以了。

3 当外部应用程序出了exe还需要其他的文件才能打开时那么将其他文件路径写进QStringList()中。

给出源代码:调用notepad++打开路劲为QString qs的txt文档

void test6::notepad(QString qs)

{

QProcess pro = new QProcess;

pro->startDetached("C://Program Files (x86)//Notepad++//notepad++exe",QStringList(qs));

}

再给出一个我调用IrFanView查看的源代码:

void test6::IrffanView()

{

QProcess pro = new QProcess;

if (!vqs_strempty())

{

vqs_it = vqs_strbegin() + selecteditem;

pro->startDetached("D:\\IrfanView\\i_view32exe", QStringList(vqs_it));

}

else

{

pro->startDetached("D:\\IrfanView\\i_view32exe", QStringList());

}

}

你这个需求可以使用popen()来实现。

FILE file = popen("/linphonec", "w");

fwrite("call xxxx\r\n", 11, file);

fwrite("terminate\r\n", 11, file);

pclose(file);

你可以在QT的按钮slot里向file写入命令,这些命令就能传到linphone的stdin。

这么做的不足 1 popen只能打开单向管道 因此你读不到linphone的输出结果。2 popen在较低版本的uclibc上不是thread safe的

变通的办法是你改一下linphone,调用freopen来重定向自己的stdin和stdout

不过我觉得你最好还是改改linphone,集成到你的QT程序里算了,也不麻烦

应用程序正常初始化错误 1 VC2003、VC2005、VC2008及其后续版本,对底层最基本的CRT、MFC、ATL库都进行了重构,为了避免不同版本的库引起冲突,重构后的库文件一般放在 C:windows\WinSxS 文件夹中,并用特定的文件夹\文件名称进行标识; 2

本文介绍,在Linux环境下,使用Qt中的 QProcess 类执行shell命令并获取输出。

头文件: #include <QProcess>

一、函数接口

QProcess 类提供了三个函数

二、执行命令

这里主要介绍 execute() 和 start() :

execute() 会将命令输出直接打印到控制台,调用程序无法捕获。

调用程序可通过 readAllStandardOutput() 捕获shell命令的输出

三、管 道

对于shell命令中的 | ,直接传入参数是不行的。

以上的方式是无法执行的。

可以将整个命令作为 sh 的参数传入 或 使用 QProcess::setStandardOutputProcess(QProcess destination) 即将一个进程的标准输出流传入目标进程的标准输入流

对于需要sudo权限的命令,需要使用sudo权限打开qtcreator,或者直接在命令前加上sudo(不建议)。

当然, QProcess 不仅仅可以执行shell命令,也可以用于执行调用外部程序。

以上就是关于qt调用外部exe程序并且将exe程序一起打包全部的内容,包括:qt调用外部exe程序并且将exe程序一起打包、c++中的qt调用、arm上的QT用qprocess调用外部程序(linphone),但是这个程序的运行需要在命令行里输入命令才能实现。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10213374.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存