C++如何调用带有输入和输出的exe程序? 70

现在有一个***.exe文件,该程序有一个界面,界面通过输入栏指定两个输入文件的文件名和一个输出文件的文件名。现在想c++编程,调用这个***.exe,不显示***.ex... 现在有一个***.exe文件,该程序有一个界面,界面通过输入栏指定两个输入文件的文件名和一个输出文件的文件名。
现在想c++编程,调用这个***.exe,不显示***.exe的界面,但是也能给定输入输出文件名,并调用该***.exe完成计算。
展开
 我来答
发光女神33
2019-07-04 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:28%
帮助的人:779万
展开全部
你这个问题的本质是ipc(进程间通讯)问题,属于操作系统中的常见问题。如果在windows中应当使用事件(setevent)、互斥量(mutex)等方法来解决。
另外,由于c/c++属于编译型语言,不能保证任何一个变量编译后(尤其是优化后)都仍然存在,所以从一个程序中直接访问另外一个程序中的变量几乎不可能。特别的,对于调试器来说,调试器利用编译器生成的符号表来识别其它可执行文件中的变量,并通过特殊的手段替换被调试程序中的代码检测被调试程序中的变量是否发生了变化,但这一过程严重影响被调试软件的运行效率。调试器的复杂程度远远超过普通初学者的理解范围。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
七城111
2012-08-27 · 超过53用户采纳过TA的回答
知道小有建树答主
回答量:184
采纳率:0%
帮助的人:112万
展开全部
1、主调用程序 利用 ShellExcute() 调用 被调用程序,其中可以带参数(以字符串形式,参数间用空格隔开),也可以指定显示调用或隐式调用;

2、被调用程序中的main()函数里的 argv接收 主调用程序传递过来的参数,进行接下来的处理。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
poseidon_k
2012-08-27 · TA获得超过2580个赞
知道小有建树答主
回答量:1223
采纳率:0%
帮助的人:303万
展开全部
main函数有两个参数,可以接收在启动exe文件时附加的参数。
其中argc就表示参数的个数,argv就表示你输入的其他参数的内容,比如:
#include <stdio.h>
void main(int argc, char** argv)
{
printf("参数个数:%d\n", argc);
printf("第一个参数:%s\n", argv[0]);
printf("第二个参数:%s\n", argv[1]);
printf("第二个参数:%s\n", argv[2]);
}
这个例子运行的时候输入:
文件名 abc.txt 123.txt
输出:
参数个数:3
第一个参数:文件名
第二个参数:abc.txt
第二个参数:123.txt

注意这个有参数的命令行是在控制台窗口输入或在VC中工程设置下的“调试----程序变量”中输入。
追问
现在的问题是程序太大了,有几万行,而且是fortran编写的。fortran中界面不好删除(删除界面牵扯很多东西出来)。
能不能编写个in文件,或者批处理文件之类的,实现这种带界面后台调用?
追答
没明白你的意思,你是要打开一个批处理文件直接以带参数的命令行启动你的程序?
这样的话可以直接将带参数的命令行输入到一个批处理文件,这样打开程序时程序会接收到参数。我没用过fortran,如果它的主函数不是void main(int argc, char** argv)这种格式,调用WindowsAPI函数GetCommandLine()也可以得到带参数的命令行。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
maning_81
2012-08-27 · TA获得超过885个赞
知道小有建树答主
回答量:2992
采纳率:50%
帮助的人:283万
展开全部
得保证这个exe有运行时的输入输入参数才行吧。。你有这个exe的源代码吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式