【发布时间】:2011-07-23 06:50:33
【问题描述】:
好的,假设我有 b.exe,它接受一个字符串参数。 我想在 a.cpp 中调用 b.exe,使用 system:
string s1 = "hallo";
system("b.exe s1");
printf("s1 after invoke = %s",s1);
这是 b.cpp 中的代码:
int main(string s)
{
s = "hello world";
return 0;
}
我想要的是,当我运行 a.exe 时,输出将是:
s1 after invoke = hello world
可以这样做吗?基本上,我只想将变量传递给 exe,但它必须是通过引用,而不仅仅是通过值,因为我希望在我调用的 exe 中处理和修改该变量。我已经在互联网上搜索了解决方案,但它只为我提供了将变量按值传递给 exe 的方法,而不是通过引用传递..
任何建议都将不胜感激,但如果可能,我希望以上述更正代码和包含文件的形式提出建议(如果有)。谢谢你的帮助:)
【问题讨论】:
-
进程间通信的经典问题!一个简单的解决方案是在两个进程之间共享内存。如果您使用的是 Linux,请搜索
mmap()并查看示例程序。 :-)
标签: c++ visual-studio-2008 pass-by-reference exe invoke