我有个"001.C"的文件:
#include <stdio.h>
#include <math.h>
const g=10;
main()
{
int a,b,c;
printf(" A= ");
scanf("%d",&a);
printf(" B= ");
scanf("%d",&b);
c=a+b;
printf(" A+B = %d\n",c);
}我现在想用DELPHI来测试该程序代码是否正确..首先我先利用TURBOC的TCC.EXE对"001.C"进行编译.使之生成"001.EXE"可执行文件.我用如下方法:
ShellExecute(Handle, 'open', PChar('command.com'), PChar('/c C:\turboc2\tcc -e001 001.c >p.txt'), nil, SW_SHOW);
这步可以成功解决了,也可以正确地生成可执行程序"001.EXE".接下来,我要调用"001.EXE"进行测试了.
我把测试数据:1 2 放在input.txt 文件中.想把测试结果的数据放在output.txt文件中.
我用如下方法:
ShellExecute(Handle, 'open', PChar('command.com'), PChar('/c 001 <input.txt >output.txt'), nil, SW_SHOW);
这样,测试数据就不用通过手动从键盘上输入.只要读取input.txt 文件中的测试数据就可以了.
但是用ShellExecute函数时,当001.EXE程序的代码如下时:
#include <stdio.h>
#include <math.h>
const g=10;
main()
{
int a,b,c;
printf(" A= ");
scanf("%d",&a);
printf(" B= ");
scanf("%d",&b);
while (g==10) ;
c=a+b;
printf(" A+B = %d\n",c);
}
由于while (g==10) ;,发生逻辑错误,进入死循环.得用DELPHI程序在一段时间(如2秒)自动结果001.EXE程序.这时用ShellExecute函数就不大方便了.
所以我想用Creatprocess函数来代替
ShellExecute(Handle, 'open', PChar('command.com'), PChar('/c 001 <input.txt >output.txt'), nil, SW_SHOW);
实现同样的功能,并且能够结果001.EXE的死循环问题.有哪位大哥有空能不能帮我实现这个功能,,,感谢万份.不知道我能否把问题描述清楚...如果有不清楚的再说...
#include <stdio.h>
#include <math.h>
const g=10;
main()
{
int a,b,c;
printf(" A= ");
scanf("%d",&a);
printf(" B= ");
scanf("%d",&b);
c=a+b;
printf(" A+B = %d\n",c);
}我现在想用DELPHI来测试该程序代码是否正确..首先我先利用TURBOC的TCC.EXE对"001.C"进行编译.使之生成"001.EXE"可执行文件.我用如下方法:
ShellExecute(Handle, 'open', PChar('command.com'), PChar('/c C:\turboc2\tcc -e001 001.c >p.txt'), nil, SW_SHOW);
这步可以成功解决了,也可以正确地生成可执行程序"001.EXE".接下来,我要调用"001.EXE"进行测试了.
我把测试数据:1 2 放在input.txt 文件中.想把测试结果的数据放在output.txt文件中.
我用如下方法:
ShellExecute(Handle, 'open', PChar('command.com'), PChar('/c 001 <input.txt >output.txt'), nil, SW_SHOW);
这样,测试数据就不用通过手动从键盘上输入.只要读取input.txt 文件中的测试数据就可以了.
但是用ShellExecute函数时,当001.EXE程序的代码如下时:
#include <stdio.h>
#include <math.h>
const g=10;
main()
{
int a,b,c;
printf(" A= ");
scanf("%d",&a);
printf(" B= ");
scanf("%d",&b);
while (g==10) ;
c=a+b;
printf(" A+B = %d\n",c);
}
由于while (g==10) ;,发生逻辑错误,进入死循环.得用DELPHI程序在一段时间(如2秒)自动结果001.EXE程序.这时用ShellExecute函数就不大方便了.
所以我想用Creatprocess函数来代替
ShellExecute(Handle, 'open', PChar('command.com'), PChar('/c 001 <input.txt >output.txt'), nil, SW_SHOW);
实现同样的功能,并且能够结果001.EXE的死循环问题.有哪位大哥有空能不能帮我实现这个功能,,,感谢万份.不知道我能否把问题描述清楚...如果有不清楚的再说...
解决方案 »
- 请问如何将qrdbtext 内容在QRBand1beforePrint赋给image1.canvas.textout
- 关于判断STRING变量是否为空
- 在fastreport中如何用memo显示空记录
- CSDN有这些人在肯定人气不行,现在上delphi版的越来越少了
- 在其他机子上运行后,控件位置发生变动的问题,高手请指教!
- ODAC?
- 我的窗口在任务栏上的图标不见了???
- 输出换行怎么做?
- DELPHI CLIENTSOCKET第二天就不发数据了,帮忙看看(附代码)
- 一大堆整数型变量可否同时归零?如:a,b,c:=0;否则要:a:=0;b:=0;c:=0;太麻烦了。不会是Borland的失误吧?
- 为什么北京南三环早上由东向西那么的堵车?为什么堵到公主坟就通畅了?哎,连着3天都迟到了,找谁说理去呀?
- For 循环出问题了????????
我想编写个socket程序,要以 "a.exe 1 2"方式执行,但是我不知道delphi怎么使用外部参数啊?(C有argc,argv什么的)
用辅助线程解决这个问题。
方法如下1.以Thread类为基类,派生一个线程类,创建线程对象。
2.在这个辅助线程里,用CreateProcess启动你的程序,然后用WaitForSingleObject函数去等待它结束。这样,主线程不会死掉(挂起)!