Вызов неуправляемой DLL класса C ++ из C # - PullRequest
0 голосов
/ 23 сентября 2010

Как я могу вызвать неуправляемую DLL класса C ++ из C #?

Ответы [ 4 ]

4 голосов
/ 23 сентября 2010

Возможно, вы захотите создать управляемую оболочку C ++ для этого класса, скомпилировать ее с / clr (поддержка общеязыковой среды выполнения), а затем использовать в C #. Вы также можете посмотреть на PInvoke.

1 голос
/ 23 сентября 2010

CLR не поддерживает напрямую использование собственных классов C ++, он предпочитает статические методы для вызова через PInvoke или интерфейсы COM для использования через взаимодействие COM. Так что требуется какая-то оболочка C ++.

0 голосов
/ 23 сентября 2010

Например, вот так:

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
    );
}

Создайте свою маленькую оболочку, импортируйте нужные функции и вызовите

0 голосов
/ 23 сентября 2010

Вам нужно использовать P / Invoke и его сортировку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...