После прочтения Динамический вызов неуправляемых библиотек в .net
Я пытался изменить код по своему вкусу. Я сделал класс, который реализует неразборчиво, чтобы обернуть загрузки вызовов и освободить их при необходимости. Однако я не могу понять синтаксис, если возможно использовать анонимные делегаты с ним.
var loaded=DynamicLibraryLoader.TryLoad("User32.dll");
var beeper=loaded.GetProcAddress("MessageBeep");
var type=typeof(Action<UInt32>);
Action<UInt32> beepAction2=(Action<UInt32>) Marshal.GetDelegateForFunctionPointer(beeper,type);
В последней строке выдается исключение аргумента, говорящее о том, что указанный тип не должен быть определением универсального типа. Есть ли способ обойти это или я должен предоставить именованного делегата, чтобы сделать что-то неуправляемое?
Для справки любого, кто интересуется тем, что вы можете сделать по умолчанию в окнах с неуправляемым кодом - Ссылка (создание ярлыков, динамическая загрузка DLL)