在创建COM对象时,总返回OUTOFMEMORY

primer_programer 2008-07-17 08:14:16
本人刚刚学习《COM原理与应用》,仿照字典组件写了一个组件,但是在测试程序中按照如下方式调用:
IUnknown* pUnknown = NULL;
IScript* pScript = NULL;
HRESULT hr;
GUID guidExcelOper;
hr = ::CLSIDFromProgIDEx( _T("ExcelOper.Object"), &guidExcelOper );
if ( FAILED( hr ) )
{
AfxMessageBox( _T( "获得组件唯一标识失败!" ) );
return ;
}
hr = CoCreateInstance( guidExcelOper, NULL, CLSCTX_INPROC_SERVER, IID_IUnknown, (void**)&pUnknown );
if ( FAILED( hr ) )
{
AfxMessageBox( _T( "创建组件对象失败!" ) );
return ;
}

CoCreateInstance函数总返回OUTOFMEMORY,请问都有哪些可能?
...全文
91 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
primer_programer 2008-07-18
  • 打赏
  • 举报
回复
找到问题的原因了,动态创建的问题。结贴。
dbger 2008-07-17
  • 打赏
  • 举报
回复
代码上没看出有啥问题

1)查看下guidExcelOper获取是否正确
2)CoCreateInstance前是否初始化了COM库,即CoInitialize(NULL);

3,245

社区成员

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

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