我在看了《WINDOWS核心编程》的第4张的时候,对CreateProcess函数的第一个和第二个参数没有理解好。我想通过一个实例子来搞清楚。 假如我要生成一个进程来完成 1+1=2这个操作,那么代码应该怎么写呢? 请各位高手帮忙给点比较完整的代码,高分相送。

解决方案 »

  1.   

    http://blog.csdn.net/he_zhidan/archive/2004/03/01/17022.aspx
      

  2.   

    《WINDOWS核心编程》书中的例子好好读读,很多人读这本书的,还有MSDN。
      

  3.   

    CreateProcess可以指定进程的安全属性,继承信息,优先级...
    Bool CreateProcess{
    执行程序文件名
    参数行
    进程安全参数
    线程安全参数
    继承标记
    创建标记
    环境变量
    运行该子进程的初始目录
    创建该子进程的相关参数
    创建后用于被创建子进程的信息
    }
    第一、二个参数,是如果需要运行参数,则第一个参数为NULL
    这个函数可以去启动其他exe程序,比如
    CreateProcess(Null,
    "C:\\...\\notepad.exe c:\\autoexec.bat",
    null,
    null,
    false,
    NORMAL_PRIORITY_CLASS|CREATE_NEW_CONSOLE,
    null,
    null,
    ..,
    ..);最后两个需要自己声明struct变量来返回
      

  4.   

    第一个参数是要启动的目标进程的路径,可以带启动参数
    第二个参数从msdn中说是启动参数,其实也可以是目标程序加参数在普通情况下,这二者用一个就可以了,另一个用NULL
      

  5.   

    “生成一个进程来完成 1+1=2这个操作”,这个操作时你的进程要做的,与进程的创建无关第一个参数lpApplicationName:指向一个以空结尾的串,他指定了要执行的模块
    第二个参数lpCommandLine:指向一个以空结尾的串,该串定义了要执行的命令行。         PROCESS_INFORMATION pi;
    STARTUPINFO si;
    bool IsProcessCreat;
    ZeroMemory(&si,sizeof(si));
    si.cb = sizeof(si);
    IsProcessCreat = CreateProcess(FileName, NULL, NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi);