Activex引用计数为负数说明什么问题?

周详521 2008-11-06 02:16:02
void __fastcall TMainForm::ActiveFormCreate(TObject *Sender)
{
int Count = _AddRef();
Count--;
ShowMessage(Count);
_Release();
}

这样获得的引用计数是负数, 这其中有什么奥秘吗?
...全文
115 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
周详521 2008-11-06
  • 打赏
  • 举报
回复
算了,问题到此为止.结贴.慢慢研究了.
周详521 2008-11-06
  • 打赏
  • 举报
回复
我用的是BCB6,创建了一个ActiveXForm,选项都是默认的.
僵哥 2008-11-06
  • 打赏
  • 举报
回复
不是很清楚,你现在的环境.我这里测试都一切正常.
周详521 2008-11-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 unsigned 的回复:]
C/C++ codevoid __fastcall TActiveFormX::Button1Click(TObject *Sender)
{
_AddRef();
AnsiString str = _Release();
MessageBox(Handle,str.c_str(),"test",MB_OK);
}
[/Quote]

我用这段代码得到的结果是-1, 这说明了什么? 引用计数是不是应该是+1?
周详521 2008-11-06
  • 打赏
  • 举报
回复
把问题解决了,我要追加分.
僵哥 2008-11-06
  • 打赏
  • 举报
回复
void __fastcall TActiveFormX::Button1Click(TObject *Sender) 
{
_AddRef();
AnsiString str = _Release();
MessageBox(Handle,str.c_str(),"test",MB_OK);
}
周详521 2008-11-06
  • 打赏
  • 举报
回复
可是放到
void __fastcall TActiveFormX::Button1Click(TObject *Sender)
{
int Count = _AddRef();
Count--;
ShowMessage(Count);
_Release();
}
这里还是-2.页面已经完全启动了.
周详521 2008-11-06
  • 打赏
  • 举报
回复
哪怎样才能获得正确的引用计数?麻烦指教一下.
僵哥 2008-11-06
  • 打赏
  • 举报
回复
在这个时候,实际上COMObject还没有建立,所以_AddRef和_Release返回的都是-1.
僵哥 2008-11-06
  • 打赏
  • 举报
回复
事件好象不太对.
周详521 2008-11-06
  • 打赏
  • 举报
回复
得到的Count = -2.

703

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder ActiveX/COM/DCOM
社区管理员
  • ActiveX/COM/DCOM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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