Pra*_*dda 11 c# visual-studio visual-c++
嘿伙计们,我正在尝试在我的c#项目中包含c ++库(DLL)但是每次我这样做我都会在VS2008中收到以下错误消息,有什么建议吗?
编辑:这是一个C++ MFC DLL
无法添加对"C:\ Users\cholachaguddapv\Desktop\imaging.dll"的引用.请确保该文件是可访问的,并且它是有效的程序集或COM组件.
Luc*_*ero 18
如果它是"普通"DLL(不是COM,不是托管C++),则无法添加这样的引用.您必须为要在DLL中调用的导出添加p/invoke签名(外部静态方法定义).
[DllImport("yourdll.dll")]
public static extern int ExportToCall(int argument);
Run Code Online (Sandbox Code Playgroud)
查看在线帮助中的DllImport属性.
如果它是非托管 dll,则无法添加对它的引用。您必须使用 pinvoke 或类似的方法调用它:
public classFoo
{
[DllImport("myunmanaged.dll", CharSet = CharSet.Ansi)]
private extern static int UnmanagedFunction(int type, int dest);
}
Run Code Online (Sandbox Code Playgroud)
如果您想将其转换为托管 dll,请查看此处:http : //msdn.microsoft.com/en-us/library/aa446538.aspx
如果您想了解有关 pinvoke 和 dllimport 的更多信息,请查看此处:http : //msdn.microsoft.com/en-us/library/aa288468.aspx
干杯
如果它是一个直接的C++库,那么就不可能以这种方式引用它.
您有两个选项,您可以将C++库编译为程序集,使用C++/CLI包装器公开非托管代码.
-要么-
如果库通过C API公开它的功能,您可以使用一些p/invoke调用.
您能否稍微扩展一下这个问题,以包含一些关于如何通常从c ++调用imaging.dll的细节?
归档时间: |
|
查看次数: |
34743 次 |
最近记录: |