Подскажите пожалуйста как из C# вызвать Win32 функцию по её адресу
Например есть функция wglChoosePixelFormatARB библиотеки opengl32.dll
для её использования в текущем контексте
для С++ код выглядит так,
и что самое интересное, работает замечательно:
// Определение
extern BOOL WINAPI wglChoosePixelFormatARB (HDC, const int *, const FLOAT *, UINT, int *, UINT *);
typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
...
// Использование
wglChoosePixelFormatARB = (PFNWGLCHOOSEPIXELFORMATARBPROC) wglGetProcAddress("wglChoosePixelFormatARB");
...
wglChoosePixelFormatARB(hDC,attr,NULL,1,&format,&count);
Но требуется
реализация функции wglChoosePixelFormatARB именно на C#
Для получения адреса:
[DllImport(WGL_NATIVE_LIBRARY, SetLastError = true), SuppressUnmanagedCodeSecurity]
public static extern IntPtr wglGetProcAddress(string extension);
// Получаю адрес функции
IntPtr wgl = wglGetProcAddress("wglChoosePixelFormatARB");
А вот
как определить и вызвать функцию wglChoosePixelFormatARB ?
т.к. простой DllImport естественно не работает пишет что, функция в библиотеке не найдена
Через Marshal что то тоже пока не получается