回复 17 楼 天使梦魔
第一个方法我的意思是,之前不是用CreateProess启动的cmd.exe嘛,那现在生成了add.exe,是不是再定义一个CreateProcess启动add.exe,然后传a,b的值。。。。。
后面你解释的我有点听不懂(我水平有限啊)。“如果使用cmd就不停的挂上exe,每条命令都有一个前端运行程序,gui保存设置好路径,每条参数前都带运行程序exe”这句话的意思,联系我用的MinGW命令,我理解的是:比方说我编译、链接一个C程序,参数为-o,那用到的是gcc.exe,那我给的命令就是“gcc -o ………”,如果编译、链接一个C++程序,参数也是-o,用到的是g++.exe,那我给的命令就是“g++ -o ………”。应该是这样吧。。gui保存设置好路径指的什么啊?
后面这句话“你说的必须进入gdb然后运行某命令我暂时理解为不支持参数调用。”我给你发了一个在CMD中运行的图片,当输入gdb add.exe 命令后会进入<gdb>下,也就是调试环境中(因为我后期的重点、难点肯定在调试这一块,设置断点、单步什么的,都要在<gdb>下进行),然后我可以输入run等其他调试时用到的命令。。
图片附件: 游客没有浏览图片的权限,请
登录 或
注册
“这时候你找管道输入资料,管道输入就是直接以某exe已经打开然后进行操作,如果使用输入就不要用挂参形式了而是程序内可执行的所有命令。格式也以直接打开exe后怎么输入为准”这句话真的说到我心坎儿上了,我感觉问题就是在这里,比方说我现在给gdb命令,打开了调试环境,那我以后都要在这个环境下执行命令,是不是说这个时候用管道输入就可以了。比如说以下语句
si.hStdInput = hStdinRd;//数据输入用的文件句柄
si.hStdError = hStdoutWr;//数据输出用的文件句柄
si.hStdOutput = hStdoutWr;//数据输出用的文件句柄
程序代码:
void COutputWnd::WriteToPipe(LPCTSTR line)
{
DWORD dwWritten;
WriteFile( hStdinWr, line, _tcslen(line)*sizeof(TCHAR),
&dwWritten, NULL );
}
是这个思考方向吗?
[
本帖最后由 cr945211 于 2014-8-28 22:33 编辑 ]