DllImport, unsafe код, указатель на функцию - C#
Формулировка задачи:
Необходимо вызвать функцию из dll, у которой параметром является структура, в которой одно из полей - указатель на функцию. Я не знаю, как средствами C# определить указатель на функцию в unsafe коде. Помогите, пожалуйста, разобраться.
Вот код из заголовочного файла C++
И нужно ли в данном случае указывать параметр упаковки Pack = 1 или просто [StructLayout(LayoutKind.Sequential)]
typedef void (* pF)(void* object); typedef struct StrA_ { void* data; pF f1; } StrA; extern "C" int Func(StrA* s);
[StructLayout(LayoutKind.Sequential, Pack = 1)] public unsafe struct StrA_ { void* data; // pF f1; ???? } [DllImport("aaa.dll", CallingConvention = CallingConvention.Cdecl)] public unsafe static extern int Func(StrA_* s);
Решение задачи: «DllImport, unsafe код, указатель на функцию»
textual
Листинг программы
[DllImport("freetype6.dll", EntryPoint = "FT_Init_FreeType", CallingConvention = CallingConvention.Cdecl)] private unsafe static extern int Init_FreeType(out LibraryRec alibrary);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д