我有一个遗留代码。代码是这样工作的:在一个Event1
事件发生之后,它CWindowImpl
在堆中创建一个窗口对象(继承自类)。发生后,Event2
它会应用在窗口中所做的更改,通过调用将其关闭并通过调用DestroyWindow()
释放堆中的内存delete
。
此代码有问题,因为它在处理此窗口的所有消息之前删除了窗口对象。如何确定何时调用delete
window 对象是安全的?
我发现的唯一解决方案是覆盖OnFinalMessage
并在那里调用delete this
。我不喜欢它,因为它必须保证对象只在堆中创建。有更好的想法吗?
谢谢你。