设计时试图在窗体上放置 ActiveX 控件,或者向带有 ActiveX 控件的工程中添加窗体,但却不能找到注册表中相关的信息。 
注册表中的信息可能被删除或被破坏。重装 ActiveX 控件或与控件的代理商联系。

解决方案 »

  1.   

    部署为COM+组件后,不能使用NEW操作符,必须使用:
    dim obj as Object
    set obj=CreateObject(Ex1.Class,"YourServerName")
    obj.pro="pro"
    如果还是出现429错误,请在win98的机器上手工注册此Active Dll 组件。
      

  2.   

    你编译dll的时候在工程属性中有一个选项,
    部件>>远程服务器文件这个选项打上钩
    这样,会编译出一个vbr文件
    用C:\Program Files\Microsoft Visual Studio\Common\Tools\Clireg
    clireg32.exe在客户端机器上注册vbr 文件。
    你用createobject时可以不指定服务器名
    也可以在客户端引用dll的类型库,这样,你在客户端可以用
    dim x as new cls了
    to :回复人: CGS(游侠) (  ) 信誉:100  2002-2-25 12:37:28  得分:0    部署为COM+组件后,不能使用NEW操作符,必须使用:
    这是错误的观点
     
      

  3.   

    不要在你的服务器上用 regsvr32注册dll
      

  4.   

    CGS大侠:
    Ex1.Class要加“ ”吧
    服务器就是填入组件服务的计算机名就可以了吗
    我运行后产生
    类未在本地机器上注册(错误 463)指定了一个服务器参数,但是指定的类 progid (CreateObject 函数的第一个参数)未在本地系统上注册。 
    的错误,
    不过我看工程-引用里 EX1定位: C:\programe files\COMPluse application\{AAEO38F9-CFAAD-3244.....
    这应该是已经注册了吧
    何况我DLL是在服务器上,如果手工注册,那还要MTS干什么
      

  5.   

    CGS大侠:
    Ex1.Class要加“ ”吧
    服务器就是填入组件服务的计算机名就可以了吗
    运行后产生
    类未在本地机器上注册(错误 463)指定了一个服务器参数,但是指定的类 progid (CreateObject 函数的第一个参数)未在本地系统上注册。 
    的错误,
    不过我看工程-引用里 EX1定位: C:\programe files\COMPluse application\{AAEO38F9-CFAAD-3244.....
    这应该是已经注册了吧
    何况我DLL是在服务器上,如果手工注册,那还要MTS干什么
      

  6.   

    做了个实验
    active dll工程名dllTestGetTime,未选择remote server files
    cTestGetTime.cls
    VERSION 1.0 CLASS
    BEGIN
      MultiUse = -1  'True
      Persistable = 0  'NotPersistable
      DataBindingBehavior = 0  'vbNone
      DataSourceBehavior  = 0  'vbNone
      MTSTransactionMode  = 0  'NotAnMTSObject
    END
    Attribute VB_Name = "cTestGetTime"
    Attribute VB_GlobalNameSpace = False
    Attribute VB_Creatable = True
    Attribute VB_PredeclaredId = False
    Attribute VB_Exposed = TruePublic Function Gettime() As String
    Gettime = CStr(Now)
    End Function客户端工程
    Sub main()
    Dim aaa As cTestGetTime
    Set aaa = New cTestGetTime
    MsgBox aaa.gettime
    Set aaa = Nothing
    End Sub安装顺序,
    编译dll生成dlltestgettime.dll
    ->copy to server
    ->组件服务添加组件dlltestgettime.dll
    ->启动组件->导出安装包(应用程序代理,非服务应用程序)
    ->在林一台机器上安装
    ->建立新的vb工程,引用dlltestgettime,输入测试代码并运行,一切正常。
    我的环境是win2000->win2000
      

  7.   

    不好意思我打错了!
    老实说,我也是第一次在自己的程序中实现中间件(COM+)的,对其中的很多原因不能提供权威的说明。
    我不知道为什么在Windows 2000组件服务中导出的客户端安装程序安装后(可能安装程序并没有注册组件),使用CreateObject会出现463错误,但手工注册(可以在程序中进行)后即可正常。
    对于使用NEW操作符,我是没用也没试过(我会试的),但我认为使用CreateObject有其优点:如可在运行时确定中间层服务器及要调用何种组件等。请各位高手多多指点([email protected]
      

  8.   

    现在总算可以运行了,本地生成,本地调用,(看到MTs里面的水球在转动了)但是拿到98机器上好像有找不到AXtievX了
    我想做到的就是服务器上生成DLL 在98客户机上调用服务器上的DLL,不要手工注册的,先谢谢各位高手,不管如何,一定给分
      

  9.   

    必须要注册的
    你可以把clireg32.exe放到你的客户端程序包里面
    ,然后做一个批处理文件,在安装的时候自动注册vbr文件就可以实现了
      

  10.   

    看到一篇文章,在这里推荐
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cossdk/htm/pgdeployment_toplevel_65gz.asp
      

  11.   

    最后一个问题:是不是客户机上也要装MTS的,如果没有,那是不是要手工注册了?我好像用regsvr32注册后,服务器上的组件小球没有转动