我是否可以在DirectX 11 API中找到关于不同方法的异常安全级别的文档?
发布于 2015-02-07 06:04:18
DirectX C++中的任何API都不会抛出C++异常。它们也不会生成SEH异常,除非存在某种运行时或用户模式驱动程序错误,或者由调试运行时触发断点。
这就是为什么他们都返回HRESULT或return。
通常,Direct3D 11对象遵循基于其AddRef/Release引用计数的标准COM生存期规则,但主要例外情况是,如果设备被完全释放,那么从它创建的所有设备子对象都会立即失效。
即使不使用C++异常处理,编写异常安全代码和为DirectX 11接口对象使用Microsoft::WRL::ComPtr也是一个好主意--当然,需要注意的是,您需要确保最终设备实例本身被释放/重置。
https://stackoverflow.com/questions/28375765
复制相似问题