我在 Visual Studio 的一个解决方案下有一个 C++ 项目和一个 Python 项目。我不愿意修改 C++ 项目,因为它很复杂,现在已经完成。我不想再碰它了。所以为了整合它们,我选择在 Python 中调用 C++ 项目,而不是相反。
我希望将参数从 Python 传递到
int main(int argc, char** argv)
的C++ 项目。
我该怎么做?
的参数main()
是程序的命令行参数。因此,例如,如果您在 Python 中执行此操作:
subprocess.Popen(['myCppprogram.exe', 'foo', 'bar'], ...)
那么以下将成立main()
:
int main(int argc, char** argv)
{
assert(argc == 3);
assert(argv[1] == std::string("foo");
assert(argv[2] == std::string("bar");
}
根据我从你的问题中了解到的,你想从 python 调用一个 .exe 文件并将参数传递给 C++ 文件。
import subprocess
program = 'path to your exe file'
argument = "0"
subprocess.call([program, argument])
这将从 python 执行 .exe,并且传递的参数可以在 C++ main 中作为数组 argv 的成员读取。