Как преобразовать этот тип C в тип C #

У меня есть тип CK_NOTIFY в C ++, определенный следующим образом:

typedef uint ( * CK_NOTIFY)(
uint   hSession,
uint   event,
void*  pApplication
);

Мне нужно переопределить этот тип в C #, потому что мне нужно использовать его в качестве аргумента для функции pinvoke.
Что именно? Структура? Или указатель на функцию?

0

Решение

Было бы delegate, Ваш «тип C» описывает функцию.

Функция возвращает uint и занимает 2 uints и void*,

Таким образом, ваш делегат может выглядеть так:

Func<uint, uint, object, uint>

Как вы хотите справиться с void* зависит от тебя…

2

Другие решения

Если вам это нужно для взаимодействия (т.е. передачи его в неуправляемую DLL), вам нужно объявление делегата, например:

public delegate uint CK_NOTIFY(uint hSession, uint @event, System.IntPtr pApplication);
1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector