新手提问,请大家多多指教。谢谢。 我用CreateProcess函数创建一个新的进程失败。给出代码,请帮看看问题在哪?
顺便问一下,evc4 自带的例程在哪个目录?
void CMainFrame::OnProcessStart()
{
// TODO: Add your command handler code here
STARTUPINFO startinfo;
PROCESS_INFORMATION pinfo;
startinfo.cb = sizeof(STARTUPINFO);
startinfo.lpReserved = NULL;
startinfo.lpDesktop = NULL;
startinfo.lpTitle = NULL;
//startinfo.dwFlags = STARTF_USESHOWWINDOW;
startinfo.cbReserved2 = 0;
startinfo.lpReserved2 = NULL;
startinfo.wShowWindow = SW_SHOW;
//要调用的文件已经复制到程序的所在目录了,我想问题出在参数
BOOL bgood = CreateProcess(L"msconfig.exe",
0,
0,
0,
false,
0,
0,
0,
0,
&pinfo
);
问题点数:20、回复次数:9Top
1 楼wen_xx(天蝎之子)回复于 2005-01-10 15:07:57 得分 0
请路过的帮顶一下
谢谢 :)Top
2 楼nbcool(载舟之水)回复于 2005-01-10 23:39:32 得分 5
L"msconfig.exe" 这里应该也有问题,必须指名路径,CreateProcess好像不能自动搜索。
例如 L"\\storage\\msconfig.exe"
如果没有特殊要求的话,用这个启动好些,因为这和shell执行操作比较吻合。
{
SHELLEXECUTEINFO execInf;
ZeroMemory (&execInf, sizeof (execInf));
execInf.cbSize = sizeof (execInf);
execInf.fMask = SEE_MASK_NOCLOSEPROCESS;
execInf.lpFile = TEXT ("\\storage\\msconfig.exe");
execInf.lpVerb = TEXT("open");
ShellExecuteEx (&execInf);
}Top
3 楼wen_xx(天蝎之子)回复于 2005-01-11 11:33:10 得分 0
BOOL bgood = CreateProcess(L"C:\MyProjects\delete\bit\testbitmap\msconfig.exe",
修改加了路径也不行。 :(
Top
4 楼yzx0023(无聊客)回复于 2005-01-11 11:43:18 得分 5
L"C:\MyProjects\delete\bit\testbitmap\msconfig.exe"??
还有盘符的?你在什么环境上跑的程序?Top
5 楼wen_xx(天蝎之子)回复于 2005-01-11 13:02:33 得分 0
哦。书上告诉我把你要调用的exe放到程序所在的目录里。
写路径的时候……不是这样写?
请指教
Top
6 楼91program(当时明月在,曾照彩云归)回复于 2005-01-11 13:25:55 得分 5
由于 CE没有当前目录这个概念,所以必须给出全路径,不管是否在exe所在的目录。
目录的写法如:nbcool(载舟之水) 给出的。Top
7 楼wen_xx(天蝎之子)回复于 2005-01-11 14:41:37 得分 0
BOOL bgood = CreateProcess(L"\\storage\\msconfig.exe",
我这样写了。不知道是否这里还是写错了,但进程还是创建失败Top
8 楼nbcool(载舟之水)回复于 2005-01-11 20:41:31 得分 5
如果你有c:的话,那也要这样写啊,你不要乱写路径,看清楚再写吧。
L"C:\\MyProjects\\delete\\bit\\testbitmap\\msconfig.exe"Top
9 楼wen_xx(天蝎之子)回复于 2005-01-13 15:08:29 得分 0
L"C:\\MyProjects\\delete\\bit\\testbitmap\\msconfig.exe"
改了,不知道为什么,还是不行,可能还差一点,或者有别的原因,我想得头都晕了Top




