将C++ DLL添加到C#项目中

Kdg*_*Dev 11 c# c++ visual-studio-2010 lame

我正在尝试在C#项目中使用LAME的lame_enc.dll文件,但添加该东西似乎是不可能的.

我一直收到错误消息,指出无法添加引用,请检查是否可以访问,有效的程序集或COM组件.

我没有C++经验,但我想使用这个功能.现在我正在使用Process.NET框架调用lame.exe并做一些事情,但我想知道是否还有其他方法.

bit*_*onk 10

您只能添加托管程序集作为托管项目的引用.在这种情况下我通常做的是将其添加为ressource而不是"copy local"设置.这样,DLL就与您的项目绑定并一起部署.然后我使用DllImport从该DLL手动获取我需要的API.


Ran*_*ray 6

您必须使用P/Invoke从托管代码调用非托管API.


Sam*_*bes 5

要在 C# 中使用非托管 dll(本机 C++),您必须使用 DllImport,而不是在 Visual Studio 中添加对项目的引用(这就是您收到错误的原因)。

这是来自 MSDN 的 DllImport 文档。