C++ 在CRICHEDITCRL上使用表情符号时内存泄漏
我正在开发一个文本编辑器类(用于聊天应用程序),它基于C++ 在CRICHEDITCRL上使用表情符号时内存泄漏,c++,c,windows,mfc,C++,C,Windows,Mfc,我正在开发一个文本编辑器类(用于聊天应用程序),它基于CRichEditCtrl(MFC)并支持表情符号 加载表情符号的位图后,我使用函数olcreatestaticfromdata将其插入CRichEditCtrl。之后,我只是删除自己分配的位图对象。我可以验证(使用GDIView实用程序)我分配的所有资源是否已正确释放 这非常有效:位图(图释)绘制在CRichEditCtrl窗口上,处理方式与字符一样 我的问题是,我不知道如何释放olCreateStaticFromData分配的内存(内部)
CRichEditCtrl
(MFC)并支持表情符号
加载表情符号的位图后,我使用函数olcreatestaticfromdata
将其插入CRichEditCtrl
。之后,我只是删除自己分配的位图对象。我可以验证(使用GDIView
实用程序)我分配的所有资源是否已正确释放
这非常有效:位图(图释)绘制在CRichEditCtrl
窗口上,处理方式与字符一样
我的问题是,我不知道如何释放
olCreateStaticFromData
分配的内存(内部)来管理位图(图释)。即使我删除了CRichEditCtrl
对象,为使用的任何表情符号分配的内存也不会释放。我想知道如何解决这个问题。这是MFC的问题还是我做错了什么?OleCreateStaticFromData
返回一个COM指针,并将其传递给Rich Edit控件。此COM指针应用了一个AddRef
,因此在将其传递给控件后,必须调用Release
,以表示不再直接访问它。当控件被销毁时,它还将执行释放
,这将导致COM对象被删除
您还可以将返回的指针存储在智能指针类中,或者它将自动释放它