VC调用外部程序汇总

system()

函数名: system
功 能: 发出一个DOS命令

用 法: int system(char *command);

system函数已经被收录在标准c库中,可以直接调用

返回值
=-1:出现错误
=0:调用成功但是没有出现子进程
>0:成功退出的子进程的id

WinExec()

UINT WINAPI WinExec(
  __in          LPCSTR lpCmdLine,
  __in          UINT uCmdShow
);
参数说明:
lpCmdLine,执行的程序及其参数

uCmdShow,显示的方法

返回值:

成功,返回值大于31

返回0表示内存或者资源溢出

返回ERROR_BAD_FORMAT表示exe文件非法或者已损坏。

返回ERROR_FILE_NOT_FOUND指定的文件没有找到。

返回ERROR_PATH_NOT_FOUND找不到指定路径

ShellExecute()

 HINSTANCE ShellExecute(

      HWND hwnd,           //父窗口句柄

      LPCTSTR lpOperation,   //操作, 打开方式 "edit","explore","open","find","print","NULL"

      LPCTSTR lpFile,         //文件名,前面可加路径

      LPCTSTR lpParameters,   //参数

      LPCTSTR lpDirectory,    //默认文件夹

      INT nShowCmd          //显示方式

);

返回值:

大于32,则成功,否则失败。其返回值不是一个真正的实例句柄,只是一个整数,转化为HINSTANCE的。

CreateProcess()

 BOOL CreateProcess(      
      LPCTSTR lpApplicationName, //执行程序名      
      LPTSTR lpCommandLine,  // 参数行      
      //下面两个参数描述了所创建的进程和线程的安全属性,如果为NULL则使用默认的安全属性
      LPSECURITY_ATTRIBUTES lpProcessAttributes,  // 进程安全属性
      LPSECURITY_ATTRIBUTES lpThreadAttributes,   // 线程安全属性

      BOOL bInheritHandles,  // 继承标志      
      DWORD dwCreationFlags, // 创建标志      
      LPVOID lpEnvironment,  // 环境变量      
      LPCTSTR lpCurrentDirectory,   // 运行该进程的初始目录      
      LPSTARTUPINFO lpStartupInfo,  // 用于在创建子进程时设置各种属性      

      LPPROCESS_INFORMATION lpProcessInformation //用于在进程创建后接受相关信息

);

 

评论:

system(),主要用在DOS环境下,例如system("pause");暂停程序;system("dir");浏览目录

WinExec(),简单实用,方便打开执行进程,但不能操作控制进程。

ShellExecute(),增强了操作能力,但对进程的控制还是不够用。

CreateProcess(),目前最强劲的进程函数,通过设置StartupInfo结构体参数,来设置子进程的属性,子进程创建后的信息也保存在ProcessInformation结构体中,便于操作,功能强大,但参数过多

你可能感兴趣的:(VC调用外部程序汇总)