从C#.NET应用程序调用C / C ++代码

时间:2014-02-06 12:01:29

标签: c# c++ visual-studio-2010 dll

我有一个c ++应用程序,我需要从C#app

调用它的类方法

我已经按照以下教程为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 个答案:

答案 0 :(得分:1)

您无法添加非托管DLL作为参考。更重要的是,你不能从C#中的非托管DLL中使用C ++类。您可以选择以下选项:

  1. 将C ++代码编译为混合模式C ++ / CLI程序集,并将非托管C ++类包装在ref类中。通过添加混合模式C ++ / CLI程序集作为参考,C#可以通常的方式使用它们。
  2. 使用COM包装器包装非托管C ++类,并像使用任何其他COM库一样使用C#中的这些类。
  3. 使用C样式函数包装C ++类,并使用p / invoke从C#中使用它们。
  4. 在这些选项中,通常建议使用第一种选择。