CreateInstance失败

双杯献酒 2003-09-12 07:17:14
相关代码:

#import "E:\Projects\Demo\MyDLL\Debug\MyDLL.dll"
using namespace MyDLL;

AfxOleInit();

IOMx1Ptr m_p;
long ret = m_p.CreateInstance(__uuidof(IOMx1));

// 返回失败:
// ret : -2147221164 (0x80040154) 没有注册类别

为什么会出错呢?
应该怎么改??

<UP有分>
...全文
1018 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
skt01 2003-09-15
  • 打赏
  • 举报
回复
是否注册?如果是VB开发的别少了VBVM60.dll之类的支持文件
双杯献酒 2003-09-15
  • 打赏
  • 举报
回复
补充说明:
该组件是用VB开发的.
双杯献酒 2003-09-15
  • 打赏
  • 举报
回复
问题已经解决
(1)Analyst() 意见是对的,应该使用
m_p.CreateInstance(__uuidof(OMx1));
(2)skt01(skt001)的意见是对的
应该保证在DLL的目录下,有文件MSVBVM60.dll
(3)建议:
将DLL文件拷贝到c:\WINNT\SYSTEM32
注册 regsvr32 c:\WINNT\system32\whxx.dll
VC中 #import "c:\WINNT\system32\whxx.dll" no_namespace
双杯献酒 2003-09-15
  • 打赏
  • 举报
回复
regsvr32 c:\winNT\system32\whxx.dll
显示注册成功
DllRegisterServer in c:\winnt\system32\whxx.dll succeeded.

实际注册成功,应该在注册表里看到什么?
如果能够用
m_p.CreateInstance(__uuidof(OMx1));
在注册表里看到的是什么样子?
双杯献酒 2003-09-15
  • 打赏
  • 举报
回复
我参考了下面的连接,还是不行.
http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q194/8/73.ASP&NoWebContent=1

我又用了,ClassWizard添加Class,
有好多方法都没有了:(比如"AuthenPwd",被注释了)
// method 'AuthenPwd' not emitted because of invalid return type or parameter type

是不是DLL本身有问题?
在VB里可以引用,并生成实例.
chen_pin 2003-09-14
  • 打赏
  • 举报
回复
UP It
mjznet 2003-09-13
  • 打赏
  • 举报
回复
#import ... rename_namespace("MyDll")
试试
luohualiushui 2003-09-13
  • 打赏
  • 举报
回复
up
flinming 2003-09-13
  • 打赏
  • 举报
回复
注册。,,
xiaohyy 2003-09-13
  • 打赏
  • 举报
回复
Analyst() 可能理解错了吧,楼主的IOMx1应该是一个组件,不是接口

根据提示,问题应该是出在未注册组件类别,确保组件是注册了的??用oleview看一下
Analyst 2003-09-12
  • 打赏
  • 举报
回复
__uuidof(IOMx1)是接口ID,你创建接口当然创建不出来了,总有人会犯这种低级的错误。
应该用类ID来创建。
m_p.CreateInstance(__uuidof(OMx1));
Skt32 2003-09-12
  • 打赏
  • 举报
回复

把你的 MyDLL.dll 对应的 .tlb用 classwizard引入
叶子哟 2003-09-12
  • 打赏
  • 举报
回复
你的东东的头文件加了否!

3,245

社区成员

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

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