在C#项目中添加C++DLL我试图在C#项目中使用LAME的lame_enc.dll文件,但添加它似乎是不可能的。我一直收到无法添加引用的错误,请检查访问权限、有效程序集或COM组件。虽然我想使用这个功能,但我没有C++经验。现在我正在使用.NET框架中的Process来调用lame.exe并做一些事情,但我想知道是否还有其他方法。您必须使用P/Invoke从托管代码调用非托管API。您只能将托管程序集添加为对托管项目的引用。在这种情况下,我通常做的是将其添加为资源而不是“复制本地”设置。这样,DLL将与您的项目捆绑在一起并一起部署。然后我使用DllImport从该DLL中手动获取我需要的API。要在C#(本机C++)中使用非托管DLL,您必须使用DllImport而不是在visualstudio中添加对项目的引用(这就是您收到错误的原因)。这是MSDN中DllImport的文档。您需要使用PInvoke来调用原生lamedll中的函数。但是,您只能调用导出为“C”样式的函数。您可以使用像“PInvokeInteropAssistant”这样的工具,它可以帮助您在计算PInvoke调用签名时从C#调用本机dll:http://clrinterop.codeplex.com/releases/view/14120以上是C#学习教程:在C#项目中添加C++DLL所有内容分享,如果对大家有用,还需要了解更多C#学习教程,希望大家多加关注——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
