请问COM调用提示没有注册接口,怎么回事怎样实现?

pcly 2003-05-05 02:29:31
没有采用ATL,而是在MFC下手工写的COM类
...全文
520 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hwndhwnd 2003-05-05
  • 打赏
  • 举报
回复
DLLRegisterServer函数实现了么?
pcly 2003-05-05
  • 打赏
  • 举报
回复
呵呵,忘记说了我的是exe,现在我手工做了注册,大家看看有没有错误?有一次我搞对了现在以不行了,信息如下:
现错误信息:
First-chance exception at 0x77e4d756 in test.exe: 0x80004005: 未指定的错误

IDL文件:
import "oaidl.idl";
import "ocidl.idl";
[
object,
uuid(DD6F781B-4F52-4F37-B4B9-32406B3D6FB8),
//oleautomation,
helpstring("ITestCom Interface"),
pointer_default(unique)
]
interface ITestCom : IUnknown
{
[helpstring("method ShowMessage")] HRESULT ShowMessage();
};

[
uuid(63FFB642-323E-431E-B002-EC6EA1227047),
version(1.0),
helpstring("Svr1 1.0 Type Library")
]
library SVR1Lib
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");

[
uuid(62C9A2B5-820F-4545-90AA-DD574C959CA9),
helpstring("CSvr Class")
]
coclass CSvr
{
[default] interface ITestCom;
};
};

类注册:

[HKEY_CLASSES_ROOT\CLSID\{62C9A2B5-820F-4545-90AA-DD574C959CA9}]
@="Svr.Object"

[HKEY_CLASSES_ROOT\CLSID\{62C9A2B5-820F-4545-90AA-DD574C959CA9}\InprocHandler32]
@="ole32.dll"

[HKEY_CLASSES_ROOT\CLSID\{62C9A2B5-820F-4545-90AA-DD574C959CA9}\LocalServer32]
@="f:\\vc6\\Debug\\Svr2.exe"

[HKEY_CLASSES_ROOT\CLSID\{62C9A2B5-820F-4545-90AA-DD574C959CA9}\ProgID]
@="Svr.Object"

[HKEY_CLASSES_ROOT\CLSID\{62C9A2B5-820F-4545-90AA-DD574C959CA9}\TypeLib]
@="{63FFB642-323E-431E-B002-EC6EA1227047}"

接口:
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{DD6F781B-4F52-4F37-B4B9-32406B3D6FB8}]
@="ITestCom"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{DD6F781B-4F52-4F37-B4B9-32406B3D6FB8}\ProxyStubClsid]
@="{00020424-0000-0000-C000-000000000046}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{DD6F781B-4F52-4F37-B4B9-32406B3D6FB8}\ProxyStubClsid32]
@="{00020424-0000-0000-C000-000000000046}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{DD6F781B-4F52-4F37-B4B9-32406B3D6FB8}\TypeLib]
@="{63FFB642-323E-431E-B002-EC6EA1227047}"
"Version"="1.0"
类型库:

[HKEY_CLASSES_ROOT\TypeLib\{63FFB642-323E-431E-B002-EC6EA1227047}]

[HKEY_CLASSES_ROOT\TypeLib\{63FFB642-323E-431E-B002-EC6EA1227047}\1.0]
@="Svr1 1.0 Type Library"

[HKEY_CLASSES_ROOT\TypeLib\{63FFB642-323E-431E-B002-EC6EA1227047}\1.0\0]

[HKEY_CLASSES_ROOT\TypeLib\{63FFB642-323E-431E-B002-EC6EA1227047}\1.0\0\win32]
@="F:\\VC6\\debug\\Svr1.tlb"

[HKEY_CLASSES_ROOT\TypeLib\{63FFB642-323E-431E-B002-EC6EA1227047}\1.0\FLAGS]
@="0"

[HKEY_CLASSES_ROOT\TypeLib\{63FFB642-323E-431E-B002-EC6EA1227047}\1.0\HELPDIR]
@="C:\\WINDOWS\\System32\\Com\\"


fengzi_zhu 2003-05-05
  • 打赏
  • 举报
回复
regsvr32 you.dll

3,245

社区成员

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

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