从 C# .NET 应用程序调用 C/C++ 代码
Posted
技术标签:
【中文标题】从 C# .NET 应用程序调用 C/C++ 代码【英文标题】:Calling C/C++ Code from C# .NET application 【发布时间】:2014-02-06 12:01:29 【问题描述】:我有一个 c++ 应用程序,我需要从 C# 应用程序调用它的类方法
我按照以下教程为 C++ 应用程序创建了一个 DLL 文件
http://msdn.microsoft.com/en-us/library/ms235636.aspx
当我尝试为 DLL 文件添加引用时,它给了我错误消息
a reference to could not be added please make sure that the file is accessible and that it is a valid assembky or COM component
【问题讨论】:
【参考方案1】:您不能添加非托管 DLL 作为参考。此外,您不能在 C# 中使用非托管 DLL 中的 C++ 类。以下是您的选择:
-
将 C++ 代码编译为混合模式 C++/CLI 程序集,并将非托管 C++ 类包装在 ref 类中。通过添加混合模式 C++/CLI 程序集作为参考,C# 可以以通常的方式使用这些。
使用 COM 包装器包装非托管 C++ 类,并像使用任何其他 COM 库一样从 C# 中使用这些类。
使用 C 样式函数包装 C++ 类,并使用 p/invoke 从 C# 中使用它们。
在这些选项中,通常推荐第一个。
【讨论】:
实际上,我正在尝试使用 COM 的第二个选项。但如果推荐第一个选项,您能否指点我该选项的教程?? codeproject.com/Articles/20466/… Thaaaaaank 你大卫,以上是关于从 C# .NET 应用程序调用 C/C++ 代码的主要内容,如果未能解决你的问题,请参考以下文章
原生 C/C++ 和 C# (.NET) 之间最轻量的 IPC 解决方案是啥?
如何从本机 C(++) DLL 调用 .NET (C#) 代码?