线程中调用CreateProcess 的问题。

在一个线程中调用CreateProcess 创建失败, 程序退出时候报heapfree出错。百思不得其解。想来想去和内存相关的 应该是 CreateProcess的一个参数   __in_opt    LPCSTR lpApplicationName ,修改把之改为NULL 。运行一样的运行失败,但是主程序退出就不报错了!最终改为下面是程序代码:

// TCHAR lpFileName[MAX_PATH]={'/0'}; // memcpy(lpFileName,ProgramPath.c_str(),ProgramPath.size()); BOOL res =CreateProcess(ProgramPath.c_str(),"",&saProcess,&saThread,true,CREATE_SUSPENDED,/ NULL,NULL,&si,&pi); if (res) {

。。。。。。。。

运行通过,达到预期效果,退出也不会报错了!其中ProgramPath是string 属于线程外的变量。

 

原因估计: Via 上说 CreateProcess 会把路径字符串写入内存的可读写区里面,但是为什么退出出错就不得而知了~~~

你可能感兴趣的:(编程)