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")表示打开指定文件。

猜你喜欢

转载自blog.csdn.net/hou09tian/article/details/80760396