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