小编loi*_*oic的帖子

调试COM免费注册(c ++)

我已经构建了一个使用两个COM服务器dll的COM客户端应用程序; 我希望这个应用程序在没有COM注册的情况下运行 - 即:winsxs/.manifests

当我尝试从客户端应用程序创建COM对象的实例时,我得到了一个(...几乎可以预期......)"Class not registered"消息.

我之前已经成功完成了这种配置,但我无法弄清楚为什么这个配置失败了.


这里有一些细节:

  • 我有的模块:
    • 依赖于2个COM服务器的MFC客户端(dll1.dll和dll2.dll)
    • dll1.dll COM服务器依赖于dll2.dll
    • dll2.dll没有COM依赖项

我有的COM对象:

  • 在dll1.dll(.idl语言)中

-

[
    object,
    uuid(262D00FB-3B9F-4A76-98FC-3051FDCAF0A6),
    dual,
    nonextensible,
    helpstring("IDialogManager Interface"),
    pointer_default(unique)
]
interface IDialogManager : IDispatch{
};
[
        uuid(58562535-BCA5-4D04-BB92-78F90EDA201E),
        //...
]
dispinterface _IDialogManagerEvents
{
};
[
        uuid(D599D3F0-A4D1-44A7-87A9-16032CC613CA),
        //...
]
coclass DialogManager
{
        [default] interface IDialogManager;
        [default, source] dispinterface _IDialogManagerEvents;
};
Run Code Online (Sandbox Code Playgroud)

-

  • 在dll2.dll中

-

[
    object,
    uuid(2A183A2E-A620-4E00-B657-C9D2E59201D4),
    nonextensible,
    helpstring("ICadWizardsManager Interface"),
    pointer_default(unique)
]
interface ICadWizardsManager : IDispatch{
};
[
    object,
    uuid(FE97F3FB-8930-43BC-947D-64C90F45A071),
    nonextensible,
    helpstring("ICadWizard Interface"),
    pointer_default(unique)
]
interface ICadWizard …
Run Code Online (Sandbox Code Playgroud)

c++ com winsxs sxs regfreecom

7
推荐指数
2
解决办法
2525
查看次数

标签 统计

c++ ×1

com ×1

regfreecom ×1

sxs ×1

winsxs ×1