У меня есть тип CK_NOTIFY в C ++, определенный следующим образом:
typedef uint ( * CK_NOTIFY)(
uint hSession,
uint event,
void* pApplication
);
Мне нужно переопределить этот тип в C #, потому что мне нужно использовать его в качестве аргумента для функции pinvoke.
Что именно? Структура? Или указатель на функцию?
Было бы delegate
, Ваш «тип C» описывает функцию.
Функция возвращает uint
и занимает 2 uints
и void*
,
Таким образом, ваш делегат может выглядеть так:
Func<uint, uint, object, uint>
Как вы хотите справиться с void*
зависит от тебя…
Если вам это нужно для взаимодействия (т.е. передачи его в неуправляемую DLL), вам нужно объявление делегата, например:
public delegate uint CK_NOTIFY(uint hSession, uint @event, System.IntPtr pApplication);