我有一个使用 Direct3D 呈现视口的应用程序,它是作为独立于主应用程序的 DLL 模块制作的,它在运行时链接到它。主应用程序是一个 C# 程序。
Direct3D 设备及其资源的创建和初始化在本地 DLL 端完成。主 C# 程序仅从该 DLL 请求一个窗口。现在,由于主 GUI 循环位于 C# 可执行文件中,因此无论何时关闭/销毁视口,它都必须调用 DLL 函数来请求释放相关的 Direct3D 设备/资源。
问题是在尝试释放 Direct3D 设备时,程序会出现紧急情况。它说与创建设备试图释放它的线程不同(我猜是主 C# 程序,因为它将消息发送到 DLL)。
有解决这个问题的方法吗?有什么想法吗?
我正在使用 Direct3D 9。
帮助表示赞赏。