泛型基类中引用Api函数定义时static extern,在子类中会提示:
未处理TypeLoadException
泛型方法或泛型类中的方法是内部调用、PInvoke 或是在 COM 导入类中定义的。
解决方法:将定义Api函数封装到独立的类中即可
public class GenericClass1<T> {
[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern short GetKeyState(int virtKey);
public bool IsCapsLock { get { return (KeyState.GetKeyState(0x14) & 1) != 0; } } }
}
本文探讨了在.NET框架下,泛型基类使用PInvoke时遇到的TypeLoadException异常问题,并提供了解决方案:通过创建独立类来封装Api函数。此方法避免了在泛型上下文中直接调用非泛型的PInvoke函数导致的问题。
16万+

被折叠的 条评论
为什么被折叠?



