UWP的Unity:指定了无效的句柄

时间:2019-07-15 12:59:05

标签: c# c++ unity3d signalr il2cpp

我使用Il2Cpp为UWP开发了我的游戏。当它尝试连接到互联网时,出现此错误:

  

game.exe中的0x2121FE8A引发异常:0xC0000008:无效   指定了句柄。

由于C#源代码变成了C ++项目,所以我不知道我的代码出了什么问题。当我在Unity中玩游戏时,它可以正常工作。

如何找到发生问题的线索?

屏幕截图:

enter image description here

1 个答案:

答案 0 :(得分:1)

我不会直接在c++生成的代码中进行调试...它非常不透明且难以解释(而且Manual在这里并没有帮助)

在启用了选项Wait for Managed Debugger的情况下构建并部署应用,并在c#VisualStudio解决方案(source)中连接调试器

  1. 设置您的Unity项目构建设置并启用Development BuildScript DebuggingWait for managed debugger

    enter image description here

  2. 在Unity中构建,在VisualStudio实例中打开解决方案并将其部署到远程设备

  3. 构建和部署需要相当长的时间,一旦部署,系统会要求您附加调试器

    enter image description here

  4. 在Unity中从Visual Studio 中打开任何脚本(这样您就可以正确加载整个解决方案),然后从下拉列表中选择Attach Unity Debugger

    enter image description here

  5. 应该提示您一个允许您选择镜头的窗口。 (当通过USB连接镜头时也可以使用,但是您可能需要为devenv.exe启用入站UDP通信)

    enter image description here

通过这种方式,您可以在实际运行c#生成的Il2CPP代码时调试常规的c++代码,设置断点等。