使用CLI是如何从C++程序中返回字符串给C#
时间: 2024-11-20 15:43:28 浏览: 5
在C++和C#之间通过命令行接口(CLI)传递数据,特别是字符串,通常涉及到进程间的通信(IPC)。一种常见的做法是利用标准输入输出(stdin/stdout),或者使用系统调用如`WriteProcessStandardOutput`(Windows API)或者POSIX系统的`fork/exec`系列函数配合管道。
例如,你可以创建一个C++程序,将字符串写入到标准输出(stdout):
```cpp
#include <iostream>
#include <string>
int main() {
std::string message = "Hello from C++";
std::cout << message.c_str(); // 输出字符串
return 0;
}
```
然后,在C#中,可以读取C++程序的输出,如下所示:
```csharp
using System.Diagnostics;
// ...
var process = new Process();
process.StartInfo.FileName = "your_cxx_program.exe"; // 替换为实际的C++程序路径
process.StartInfo.UseShellExecute = false; // 避免启动shell
process.StartInfo.RedirectStandardOutput = true; // 开启输出重定向
process.Start();
string output;
process.StandardOutput.ReadToEndLine(); // 读取一行输出
output = process.StandardOutput.ReadToEnd(); // 如果需要读取所有输出
Console.WriteLine("Received from C++: {0}", output);
process.WaitForExit(); // 等待进程结束
```
阅读全文