Visual C++ 2008 在win7下的CreateProcess中的第二个参数出错
visual吧
全部回复
仅看楼主
level 1
qqwbqwb 楼主
问题描述:
在win7下使用vc2008创建进程,使用的是第二个参数,但是调用编译不通过,修改项目属性的字符集后重新编译,但是却没有调用到相关联的引用程序。代码如下:
#include "stdafx.h"
#include<stdio.h>
#include<windows.h> int _tmain(int argc, _TCHAR* argv[])
{
. STARTUPINFO si;
. PROCESS_INFORMATION pi;
. if(CreateProcess(NULL,TEXT("e:\\asksea1.exe"),NULL,NULL,FALSE,NULL,NULL,NULL,&si,&pi))
. printf("good");
. else
. printf("bad");
. getchar();
. return 0;
}
但是如果使用多字节字符集则调用不到程序,而使用Unicode则运行出错,报访问冲突。使用过char*、L""及_T()类型的字符串都未解决!
2013年03月24日 12点03分 1
level 1
qqwbqwb 楼主
经过调试,已知道出错原因了,在申明STARTUPINFO si时,未初始化其成员变量cb的初始值!
2013年03月24日 12点03分 2
1