C++调用外部应用程序的方法的整理总结(四)

2014-11-24 12:08:20 · 作者: · 浏览: 2
formation:指向PROCESS_INFORMATION结构,该结构接受关于新进程的表示信息。
  ⑶ 返回值:
  若函数调用成功,则返回值不为0;若函数调用失败,返回值为0。
  在上述参数中,参数lpStartupInfo是STARTUPINFO结构。可以用来设置控台的标题,新窗口的的初始大小和位置,及重定向标准输入 和输出。新程序通常可以忽略多数这些数据项,如果选择那样做的话。可以规定该结构体中的标志,已表明要设置的数据段。有时,不想设置任何信息,也必须传递 一个有效的指针给空结构(确定设置大小到cb,及设置dwFlags成员为0)。参数lpProcessInformation返回进程和线程句柄,还包 括进程和线程ID。这些句柄拥有在参数lpProcessAttributes和lpThreadAttributes中规定的访问。
  要注意,针对CreateProcess的一些参数对控制台应用程序是特定的,而其它参数则对各种应用程序有用。大多数情况下,并不一定要填入 STARTUPINFO结构,但无论如何必须提供它。其返回值是布尔型的,而真正感兴趣的返回值发生于作为参数传送的结构中 (PROCESS_INFORMATION)。CreateProcess返回该结构中的进程ID及其句柄,以及初始线程ID及其句柄。可以将ID发送到 其它进程,或使用句柄来控制新进程。
  ShellExecute和WinExec命令用于简单的作业。如果要完全控制一个新进程,就必须调用CreateProcess。


---------------------------------------------------------------------------------------------------------

三、注意事项

1、定义头文件

在头文件stdafx.h中必须定义以下两个头文件:

#include // 可替换为 windows.h
#include
如果定义了头文件 #include 的话就不必定义 #include 了,"windows.h" 不光是包含了"shellapi.h",它还定义了许多数据类型,如果没有这些数据类型,shellapi.h本身会出错。


摘自 lanbing510的专栏