Как я могу написать подпись на C # для обернутого метода C ++, имеющего указатель на функцию и ее аргументы? - PullRequest
1 голос
/ 14 сентября 2011

Я пишу обертку для DLL.У dll есть метод, подпись которого похожа на следующее:

unsigned long aMethod(void *anyParameter, 
void (*anotherMethod)(const char *,  void *))

Я искал в Google учебник, чтобы дать мне представление о том, как написать подпись на C #, чтобы инфраструктура могла выполнять процесс сортировки.

Как это можно написать?Знаете ли вы о каком-либо учебном пособии, книге или документации по этому предмету?

1 Ответ

3 голосов
/ 14 сентября 2011
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
delegate void AnotherMethodDelegate(string s, IntPtr anyParameter);

[DllImport("dllname",
           CallingConvention = CallingConvention.Cdecl,
           CharSet = CharSet.Ansi)]
uint aMethod(IntPtr anyParameter, AnotherMethodDelegate anotherMethod);
...