如何从C#中调用非托管C ++类DLL?
答案 0 :(得分:4)
您可能希望为该类创建托管C ++包装器,使用/ clr(公共语言运行时支持)编译它,然后您可以在C#中使用它。 您可能还想看看PInvoke。
答案 1 :(得分:1)
CLR不支持直接使用本机C ++类,它更喜欢静态方法通过PInvoke或COM接口调用以通过COM互操作使用。所以需要某种C ++包装器。
答案 2 :(得分:0)
答案 3 :(得分:0)
例如:
public unsafe class CppFunctionImport
{
[DllImport("ImageProcessingCpp.dll", EntryPoint = "PerformMovingAverage", ExactSpelling = true, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]//!-!
public static extern void PerformMovingAverage
(
ref byte *image,
int width,
int height,
int stride,
int kernelSize
);
}
创建小包装器,导入所需的功能并调用