【发布时间】:2015-09-16 04:22:34
【问题描述】:
我不太清楚这些对象是如何在软件和硬件之间形成桥梁的。如果您在终止进程时将它们泄漏到堆上,它们几乎只是被破坏的软件对象吗?还是有更多的东西?
我问的原因是我忘记让我的初始化例程更改其状态机,因此切换例程导致它尽可能多地创建“DeviceContexts”和“Devices”并将它们重新分配给相同的指针(通过 d3d11createdevice)在我发现我的内存泄漏到大约 2GB 之前。
然后我突然想到,我真的不知道未能释放这些对象意味着什么。如果这些对象被泄露以致我需要重置我的计算机,我是否应该关注它们的硬件组件?还是终止进程几乎可以清理混乱?
为了确定,我冷重置了我的电脑。但是,如果您使用这样的低级接口并且未能正确销毁/释放它们,那么确切地知道会发生什么会很好。
【问题讨论】:
-
当您的程序终止时,操作系统将清除所有这些设备上下文。否则,行为不端的程序可能会导致系统停止。
-
所以我真的不必担心这些东西会以任何方式造成硬件损坏?我知道这似乎是一个愚蠢的问题 - 但我真的不了解设备驱动程序。
-
使用它们应该不会损坏硬件,也不必担心。
标签: c++ memory-leaks direct3d device-driver