运行自定义ActiveX控件后,TSTCON32.exe进程不能自动关闭!!!

Lavie526 2006-07-13 10:53:26
各位大侠,我运行自定义ActiveX控件后,关闭testcontainer以后,TSTCON32.exe进程不能关闭,不知道是什么原因,有谁知道的,能不能告诉我!急啊。。。急
...全文
235 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
蒋晟 2006-07-14
  • 打赏
  • 举报
回复
或者你addref之后忘记release了
Lavie526 2006-07-14
  • 打赏
  • 举报
回复
各位大侠,我的问题解决了,真是太好了,谢谢你们的启发啊
Lavie526 2006-07-14
  • 打赏
  • 举报
回复
应该是内存泄漏的问题!
我写了控件动态运行时,双击控件显示控件的属性页,然后关闭就有问题。
如果不双击显示属性页,或者从testcontainer中显示属性页就没有内存泄漏的问题!
很奇怪,但是我内存已经释放了呀!这是我显示属性页的代码,各位帮看看有什么问题没?
STDMETHODIMP CSoundVisCtrl::GetPages(CAUUID *pPages)
{
GUID *pGUID;
const unsigned CPROPPAGES =3;

pPages->cElems = 0;
pPages->pElems = NULL;

pGUID = (GUID*) CoTaskMemAlloc( CPROPPAGES * sizeof(GUID) );

if( NULL == pGUID )
{
return ResultFromScode(E_OUTOFMEMORY);
}

// Fill the array of property pages now
pGUID[0] = CSoundVisPropPage::guid;
pGUID[1] =CGridLengthPpg::guid;
pGUID[2] =CColorPpg::guid;

//Fill the structure and return
pPages->cElems = CPROPPAGES;
pPages->pElems = pGUID;

return NOERROR;
}

void CSoundVisCtrl::OnShowProperties()
{
CAUUID caGUID;
HRESULT hr;
LPDISPATCH pIDispatch = GetIDispatch(TRUE);
LCID lcid = AmbientLocaleID();

GetPages(&caGUID);

hr = OleCreatePropertyFrame(
m_hWnd,
10,
10,
OLESTR("SoundVis control"),
1,
(IUnknown**) &pIDispatch,
caGUID.cElems,
caGUID.pElems,
lcid,
0L,
NULL );
if( FAILED(hr) )
{
//ErrorMsg(IDS_FAILED_DISPLAY_PROPERTY_PAGES, MB_ICONERROR);
return;
}

CoTaskMemFree( (void*) caGUID.pElems );
return;
}
lixiaosan 2006-07-14
  • 打赏
  • 举报
回复
是不是哪个接口你没有release,或者指针未释放。。
Lavie526 2006-07-14
  • 打赏
  • 举报
回复
不是的,我做的是基于OpengL的渲染控件!没有楼上说的问题,而且程序运行是正确的
DentistryDoctor 2006-07-13
  • 打赏
  • 举报
回复
你的控件都干了什么事?是不是里面有线程死锁了?

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧