C#加载C++ DLL - 退出问题

Nov*_*viz 2 c# c++ dll dllimport exit

好的,我有一个使用C++ DLL的C#用户界面.DLL实际上是一个OpenGL/SDL游戏.一旦游戏结束,它就会回到C#UI.这一切都很好,据我所知,正确.

当我尝试退出实际程序时出现问题.C#表单关闭,但很快就会出现错误,这非常不合情理.我假设它与DLL有关,也许它仍然是开放的?如何确保DLL已正确关闭?或者你如何一起关闭它?

我打开DLL如下:

    [DllImport("AsteroidGame.dll")]
    public static extern int EntryPoint();

    private void rungame()
    {
            EntryPoint();
    }
Run Code Online (Sandbox Code Playgroud)

提前致谢.

编辑

错误只是说:

vshost32.exe已停止工作

Alo*_*aus 5

应用程序退出时,Windows将卸载该DLL.在此过程中,您的dll的静态变量将被销毁.如果您的游戏没有正确结束并且某些循环仍在向例如静态类发送事件,而静态类又将它们路由到您的C#UI中,则可能会出现此类错误.

首先,您应该在退出C#UI之前检查是否确实调用了游戏引擎的所有清理例程.如果这没有帮助,您需要进一步调试到非托管代码.

Yorus,Alois Kraus