使用CLSID检索组件的COM类工厂 - 80040154

时间:2012-01-24 12:24:55

标签: dll com comexception

我有一个第三方组件“ArchestrA.MxAccess.dll”(由corgflags在x86上构建),带有2个类型库,并使用Visual Studio 2008开发PC(XP SP2 32位)。

当我在代码中创建一个类的实例时,它抛出COMException - 80040154。

以下解决方案我尝试过:

  1. RegSVR32 DLL,但无法注册。作为“未找到入口点”。

  2. Regtlib类型库,成功

  3. 重新获得DLL,成功。

  4. 编译器模式在x86上。

  5. 错误的CLSID在注册表中有条目:HKCR \ CLSID \并指向 这个DLL。

  6. 请帮忙。我正在寻找解决方案,因为3天。

    开发。


    使用codebase的regasm使用codebase输入并指向文件名,这是成功的。还使用GACUtill注册了dll,它是成功的。

    但同样的错误即将来临。

    我的ProcMon在

    中找不到条目
    "HKCR\CLSID\{c30...}\"
    <TreatAs>, <InprocServerX86>, <LocalServer32>, <APPID> 
    

    相同
    "HKCU\Software\Classes\CLSID\{C30..}\". 
    

    仅限可用条目

    1. {CLSID}\InProcServer\Default,Assembly,Class,codebase,RuntimeVersion
    
    2. {CLSID}\InProcServer\2.0.0.0\Default,Assembly,Class,codebase,RuntimeVersion
    

    runtimeVersion = V1.1.4322

    是否意味着我需要安装1.1框架?

1 个答案:

答案 0 :(得分:0)

WonderWare的技术支持答案 是 需要部署“系统平台”。

因此在初始化COM之前是基本身份验证(检查System Platform及其许可证的部署)。

注册GACUtil很有帮助。 COM有时没有注册。

再次感谢。