C# UWP应用程序中的SEHException-尝试加载SDK的DLL
我正试图在UWP桌面应用程序中使用,但遇到了一个异常,我不知道如何修复它:InteropServices.SEHException 我已经获得了SDK的源代码,我已经成功地将其构建为一个UWP类库(它已经在nuget上提供了,但我想可能我需要专门为UWP构建它——现在似乎不再是这样了) 从调试信息判断,DLL已加载,委托指针指向某个地方,但包装器代码的这一部分会引发异常:C# UWP应用程序中的SEHException-尝试加载SDK的DLL,c#,dll,uwp,sdk,C#,Dll,Uwp,Sdk,我正试图在UWP桌面应用程序中使用,但遇到了一个异常,我不知道如何修复它:InteropServices.SEHException 我已经获得了SDK的源代码,我已经成功地将其构建为一个UWP类库(它已经在nuget上提供了,但我想可能我需要专门为UWP构建它——现在似乎不再是这样了) 从调试信息判断,DLL已加载,委托指针指向某个地方,但包装器代码的这一部分会引发异常: int controllerCount = EnumerateGpuController(IntPtr.Zero, 0);
int controllerCount = EnumerateGpuController(IntPtr.Zero, 0);
此功能定义为:
internal int EnumerateGpuController(IntPtr handles, int size) =>
enumerateGpuControllerPointer(handles, size);
指针是通过以下方式获得的:
enumerateGpuControllerPointer = (EnumerateGpuControllerPointer)
Marshal.GetDelegateForFunctionPointer(NativeMethods.GetProcAddress(dllHandle, "EnumerateGPU"), typeof(EnumerateGpuControllerPointer));
dllHandle在确认已加载后似乎有效。
DLL位于项目的根目录中,生成为内容,并在生成时复制到调试目录
是否有解决方法,或者这是UWP的沙箱,使得无法使用外部DLL?UWP不支持从外部程序集动态加载和执行代码 需要加载的所有库都必须位于appx本身中 我将为您提供一个链接,以进一步阅读有关此主题的更多信息
谢谢。我有一个后续问题,但我会在另一个帖子中发布。