我自己写的最简单的 COM ,为什么调试它时总出错?

PatrickGamp 2002-12-19 11:52:44
我写了一个最简单的COM,只有一个函数,GetHelloGreeting,返回L"Hello World!",我另外建立一个测试的Project,只是加入下面几句话
#import "e:\ActiveX\TestHelloCom\TestHelloCom.tlb" no_namespace

try
{
IHelloPtr p;
p.CreateInstance(__uuidof(IHello));
CString str;
str = (LPCTSTR)(p->GetHelloGreeting());
AfxMessageBox(str);
}
catch(_com_error& error)
{
AfxMessageBox(error.Description());
AfxMessageBox(error.ErrorMessage());
}
结果 p 在 CreateInstance 之后仍然为 NULL ,怎么办?
...全文
23 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
nustchenhf 2002-12-19
  • 打赏
  • 举报
回复
在客户端程序里面,调用com前需要初始化com库,调用api function
HRESULT CoInitialize(
LPVOID pvReserved //Reserved; must be NULL
);

::CoInitialize(NULL);
WQ 2002-12-19
  • 打赏
  • 举报
回复
hr=p.CreateInstance(CLSID_Hello);
PatrickGamp 2002-12-19
  • 打赏
  • 举报
回复
就是无效指针,p = NULL

不管如何,参与有分
XiangDong 2002-12-19
  • 打赏
  • 举报
回复
看看错误代码?
PatrickGamp 2002-12-19
  • 打赏
  • 举报
回复
首先,我初始化了
再次,我把__uuidof()中的参数改为coclass的名称试了试

结果还是如故,我也搞不懂了
jeffchen 2002-12-19
  • 打赏
  • 举报
回复
首先,检查一下有没有如楼上说的初始化没有。
再次,把__uuidof()中的参数改为coclass的名称试试。

3,245

社区成员

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

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