栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

调用外部程序的几种方法

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

调用外部程序的几种方法

有详细介绍的博客:

C++执行外部程序(调用外部exe程序) - JavaShuo

C++调用外部应用程序的方法的整理总结(常用) (shuzhiduo.com)

我这里主要总结下几种方法的优缺点

前面三种方法,相对简单,但是使用也有局限,方法四相对复杂,但是灵活性高,能满足多种需求。System、ShellExecute和WinExec命令用于简单的作业。如果要完全控制一个新进程,就必须调用CreateProcess。

方法1. WinExec

WinExec()函数的作⽤是执⾏指定的程序。

使用示例:WinExec("e:\1.exe", SW_SHOW);

方法2. System

system函数已经被收录在标准c库中,头文件为

使用示例:system("D:\main.exe");

缺点:会有命令行窗口

方法3. ShellExecute

ShellExecute不只能够运行exe文件,也能够运行已经关联的文件

ShellExecute是异步执行的,不管执行的程序是否成功运行,运行的时间是长是短,ShellExecute函数都会立即返回

HINSTANCE hNewExe = ShellExecuteA(NULL, "open", "d:\test.log", NULL, NULL, SW_SHOW);

方法4. CreateProcess

CreateProcess()函数的作⽤是在主线程中创建新的进程。

使用示例:

STARTUPINFO si = { sizeof(si) };
PROCESS_INFORMATION pi;
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = TRUE;
BOOL bRet = CreateProcess(NULL, const_cast(pre_cmd_line.c_str()), NULL,
			NULL, FALSE, CREATE_NO_WINDOW, NULL, 
            const_cast 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/850058.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号