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

2024-12-19 09:42:05
推荐回答(4个)
回答1:

你这个问题的本质是ipc(进程间通讯)问题,属于操作系统中的常见问题。如果在windows中应当使用事件(setevent)、互斥量(mutex)等方法来解决。
另外,由于c/c++属于编译型语言,不能保证任何一个变量编译后(尤其是优化后)都仍然存在,所以从一个程序中直接访问另外一个程序中的变量几乎不可能。特别的,对于调试器来说,调试器利用编译器生成的符号表来识别其它可执行文件中的变量,并通过特殊的手段替换被调试程序中的代码检测被调试程序中的变量是否发生了变化,但这一过程严重影响被调试软件的运行效率。调试器的复杂程度远远超过普通初学者的理解范围。

回答2:

1、主调用程序 利用 ShellExcute() 调用 被调用程序,其中可以带参数(以字符串形式,参数间用空格隔开),也可以指定显示调用或隐式调用;

2、被调用程序中的main()函数里的 argv接收 主调用程序传递过来的参数,进行接下来的处理。

回答3:

main函数有两个参数,可以接收在启动exe文件时附加的参数。
其中argc就表示参数的个数,argv就表示你输入的其他参数的内容,比如:
#include
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中工程设置下的“调试----程序变量”中输入。

回答4:

得保证这个exe有运行时的输入输入参数才行吧。。你有这个exe的源代码吗?