我正在尝试制作一个 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# dllimport
和 C# extern
了解详细信息。
关于C#/C++ 调用 C++ 应用程序并获取输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21122217/