线程中调用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 会把路径字符串写入内存的可读写区里面,但是为什么退出出错就不得而知了~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值