我的一个MFC程序要调用一个dos版的可执行程程序,该dos程序先读取数据文件A.dat,当其执行完成还要生成数据文件B.dat,而这期间是需要一定时间的。然后MFC再读取其生成的数据文件B.dat进行计算下一步的运算。
我试图用WinExec(CurrentDir,SW_HIDE);和ShellExecute(NULL, NULL,CurrentDir, NULL, NULL, SW_HIDE); 但都出现问题。因为数据文件B.dat还未生成MFC就进行下一步了,以至于计算结果有问题。
网上也有很多这方面的介绍,但思路还不甚明了,在此请教大家!
HANDLE hProg;
hProg=ShellExecute(NULL, NULL,CurrentDir, NULL, NULL, SW_HIDE);
WaitForSingleObject(hProg, INFINITE);
好像还是不行。
我试图用WinExec(CurrentDir,SW_HIDE);和ShellExecute(NULL, NULL,CurrentDir, NULL, NULL, SW_HIDE); 但都出现问题。因为数据文件B.dat还未生成MFC就进行下一步了,以至于计算结果有问题。
网上也有很多这方面的介绍,但思路还不甚明了,在此请教大家!
HANDLE hProg;
hProg=ShellExecute(NULL, NULL,CurrentDir, NULL, NULL, SW_HIDE);
WaitForSingleObject(hProg, INFINITE);
好像还是不行。
解决方案 »
- 怎样让电脑发出“滴”的响声
- 硬盘数据全部去了
- 关于TREE的这个功能如何实现?
- CEditView GetEditCtrl( ).GetLine在2000下有返回,XP下不行?
- VC的奇怪的问题!
- char *p=new char[10];可以用delete[]p掉,char *p=new char[10],strcpy(p,Parameter->ID),再delete[] p的时候出现异常,是怎么回事呢?
- 利用硬盘 ID 进行电子注册,格式化硬盘也不能改变注册授权 1000分
- 谁知道后缀为.dfm的是什么生成的?
- VC如何接受从VB传来的数组?
- 国内的软件考试证书(如软件工程中级)在到软件公司求职时有用吗?
- 关于charWCHAR的问题
- 模板有何具体作用?
误人子弟,典型的忙等待,即使你PeekMessage了。
用2楼的方法"CreateProcess然后用WaitForSingleObject”比较常见,但具体该怎么做呢?
CreateProcess()的参数好像比较复杂,返回参数也不像是句柄,而WaitForSingleObject(hProg, INFINITE);是要句柄的。HANDLE hP = CreateProcess(“***.exe”,NULL, NULL, NULL,FALSE, 0, NULL, NULL, NULL, NULL);
WaitForSingleObject(hProg, INFINITE);
仍然不行啦
1,使用定时器,dos一执行完把定时器置为真,计算程序一结束,把定时器置为假
2,用一个线程不停地尝试打开b.dat,直到能打开再进行下一步