C#/C++ 调用 C++ 应用程序并获取输出

标签 c# c++

我正在尝试制作一个 C++ 应用程序,它将结果返回到 C# 应用程序,该结果可以显示,或者打印到控制台。

例如,在我的 C++ 文件中:

int main(int argc, char* argv[]){
    // code
    some_method_to_return_result("result");
}

在我的 C# 应用程序中

System.Diagnostics.Process.Start("exec.exe", "arguments");
some_method_to_get_result();

我怎样才能实现这一目标?

最佳答案

最好的方法是将 C++ 应用程序组织为 dll,并从 .NET 进程 (C#) 调用此 dll。在这种情况下,您将只有一个进程。从 C# 到 C++ 的调用非常有效。在某些情况下,编码数据可能很棘手。在简单的情况下,它很简单。保持数据格式简单。

C++ 函数的原型(prototype)在 C# 中应如下所示:

[DllImport("avifil32.dll")]
private static extern void AVIFileInit();

搜索 C# dllimportC# extern 了解详细信息。

关于C#/C++ 调用 C++ 应用程序并获取输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21122217/

相关文章:

c++ - 使用 MPI 进行 Valgrind+gdb 调试,库中出现错误?

c++ - 解决缺乏部分成员特化和特定性能设计约束的问题

c# - 如果失败,如何让webclient重新下载文件?

c# - 如何撤消对 azure Web 应用程序的发布

c# - 使用 ASP MVC 将字符串从 <form> 传递到 Controller

c# - 继承自 ASP.NET Web 控件 : "Element <name> is not a known element"

c++ - 我尝试用 C++ 编写自己的简单移动平均线

C++ 数组下标运算符模板

C++ : Why this window title gets truncated?

c# - DirectShow IVMRSurfaceAllocator9 (YUV Mixing) DirectX 丢失设备