C++中实现调用外部程序的方法
1 system()函数
system()函数的作用是执行指令,该函数的格式为
int system( const char *command );
其中,参数command指定了要执行的指令。以下代码的作用是调用“e:\1.exe”程序。
system("e:\\1.exe");
在使用system()函数时,需要在程序中包含process.h或者stdlib.h头文件。
2 _execl()函数
_execl()函数的作用是导入并且执行新的子进程。该函数的格式为
intptr_t _execl(const char* cmdname, const char *arg0, ..., NULL);
该函数的第一个参数cmdname指定了要执行文件的路径;后面的arg系列的参数指定了执行该文件时的参数;最后一个参数必须是NULL。
_execl("e:\\1.exe","1", NULL);
以上代码的作用是调用了“e:\1.exe”程序,需要注意的是第二个参数必须是要执行文件的名称。
使用_execl()函数时,需要在程序中包含process.h头文件。
3 WinExec()函数
WinExec()函数的作用是执行指定的程序。该函数的格式为
UINT WINAPI WinExec(LPCSTR lpCmdLine, UINT uCmdShow);
其中,第一个参数lpCmdLine指定了要执行程序绝对路径;第二个参数uCmdShow指定了显示执行程序的选项。
WinExec("e:\\1.exe", SW_SHOW);
以上代码调用了“e:\1.exe”程序,SW_SHOW表示显示1.exe的窗口。
4 CreateProcess()函数
CreateProcess()函数的作用是在主线程中创建新的进程。该函数的格式为
BOOL WINAPI CreateProcess(_In_opt_ LPCTSTR lpApplicationName,_Inout_opt_ LPTSTR lpCommandLine,_In_opt_ LPSECURITY_ATTRIBUTES lpProcessAttributes,_In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes,_In_ BOOL bInheritHandles,_In_ DWORD dwCreationFlags,_In_opt_ LPVOID lpEnvironment,_In_opt_ LPCTSTR lpCurrentDirectory,_In_ LPSTARTUPINFO lpStartupInfo,_Out_ LPPROCESS_INFORMATION lpProcessInformation);
其中,参数lpApplicationName指定了要执行模块的名称;lpCommandLine指定了要执行的命令行;lpProcessAttributes指定了创建新进程的句柄能否被子进程所继承;lpThreadAttributeslpProcessAttributes指定了创建新进程的句柄能否被子线程所继承;bInheriteHandles指定了调用该函数的进程中每个可被继承的句柄是否被新进程继承;dwCreationFlags指定了优先类控制和进程创建的标志;lpEnvironment指定了新进程的环境区块;lpCurrentDirectory指定了要创建进程所在的路径;lpStartupInfo指定了创建进程时的信息;lpProcessInformation中保存了新创建进程的识别信息。
CreateProcess()函数的参数虽然非常多,但是仅仅使用该函数调用外部程序时,大多数的参数都可以设置为NULL或者0。
STARTUPINFO si;PROCESS_INFORMATION pi;ZeroMemory(&si, sizeof(si));si.cb = sizeof(si);ZeroMemory(&pi, sizeof(pi));CreateProcess(_T("e:\\1.exe"), NULL, NULL, NULL, false, 0, NULL, NULL, &si, &pi);
以上代码的作用是调用了“e:\1.exe”程序。
5 ShellExecute()函数
ShellExecute()函数的作用是完成在指定文件上的操作。该函数的格式为
HINSTANCE ShellExecute(HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd);
其中,参数hwnd指定了所有者窗口的句柄,该窗口用来显示用户界面或者错误信息;lpOperation指定了在文件上的操作;lpFile指定了要操作的文件;lpParameters指定了传递给应用程序的参数;lpDirectory指定了默认的路径;nShowCmd指定了显示文件窗口的方式。
ShellExecute(NULL, _T("open"), _T("e:\\1.exe"), NULL, NULL, SW_SHOW);
以上代码的作用是调用了“e:\1.exe”程序,其中第二个参数_T("open")表示打开指定文件。
C++中实现调用外部程序的方法相关推荐
- PHP调用外部程序的方法解析
很多情况下需要php调用其他程序如shell命令.shell脚本.可执行程序等等,此时需要使用到诸如exec/system/popen/proc_open等函数,每种函数有各自适合使用的场景以及需要注 ...
- Delphi环境中编写调用DLL的方法和技巧
Delphi环境中编写调用DLL的方法和技巧 第一章 为什么要使用动态链接库(DLL) top 提起DLL您一定不会陌生,在Windows中有着大量的以DLL为后缀的文件,它们是保证Windows正常 ...
- Delphi中动态调用DLL的方法
Delphi中动态调用dll的方法如下: function CallFunc(dllname, funcname: string; const param: array of const): DWOR ...
- python中如何调用类_python中如何调用类的方法
类的方法的调用: 与普通的函数调用类似 1.类的内部调用:self.<方法名>(参数列表). 2.在类的外部调用:<实例名>.<方法名>(参数列表). 注意:以上两 ...
- ajax离开页面方法,jQuery中ajax调用当前页面方法
$.ajax({ type: 'POST', url: 'AddressManager.aspx/GetProvince',//AddressManager.aspx当前页面 data: '{cach ...
- python中如何调用类的方法
python中如何调用类的方法 类的方法的调用: 与普通的函数调用类似 1.类的内部调用:self.<方法名>(参数列表). 2.在类的外部调用:<实例名>.<方法名&g ...
- PHP调用外部程序的方法
很多情况下需要php调用其他程序如shell命令.shell脚本.可执行程序等等,此时需要使用到诸如exec/system/popen/proc_open等函数,每种函数有各自适合使用的场景以及需要注 ...
- python怎么调用方法_python中怎么调用自己的方法
展开全部 C/C++对Python的调用2113层次可5261以分为三个层次, (1) 高层次的调用, (2)纯Python调用, (3) Python方法的4102扩展(也就使向Python输出调用 ...
- matlab vb调用,VB程序中实现调用MATLAB的方法
收稿日期:2000207227 作者简介:王跃强(1978-),男,硕士研究生,主要研究方向:光电检测及其自动化. 文章编号:1001-9081(2001)02-0095-02 VB 程序中实现调用M ...
- python中如何调用类方法_python中如何调用类的方法
类的方法的调用: 与普通的函数调用类似 1.类的内部调用:self.(参数列表). 2.在类的外部调用:.(参数列表). 注意:以上两种调用方法中,提供的参数列表中都不用包括self. 演示一个类:w ...
最新文章
- Win64 驱动内核编程-14.回调监控文件
- TIPS FOR LIVING AT CAMBRIDGE
- aspnet_regsql
- error C2248: “CObject::CObject”: 无法访问 private 成员(在“CObject”类中声明) [问题点数
- 保持在Div 底部的方法
- MySQL Merge存储引擎
- 基于python、jupyter-notebook 的金融领域用户交易行为分析
- 《JavaScript高级程序设计》学习笔记 JavaScript基本(1)
- 全球与中国高精度漆包扁铜线市场深度研究分析报告
- 树莓派网络摄像头远程监控
- 双硬盘win10下安装ubuntu的方法
- Exchange Server 2010 部署全攻略(一)
- Opencv创建纯色图
- 天线3db波束宽度_波束宽度
- 834 计算机专业基础综合参考书,2018年上海大学834计算机科学专业基础综合考研复习资料...
- 微信开发 JS接口安全域名修改
- CVE-2021-42287、CVE-2021-42278域内提权漏洞
- 领悟《信号与系统》之 信号与系统的描述-下节
- 最大流——最大传输量
- 量化交易都有哪些主要的策略模型?