当然不是,是开发小组,每个人负责自己的模块。不过有统一的编程规范,每个控件有一个Init过程,用来创建远程对象等,这个过程中的代码基本上是一样的。

解决方案 »

  1.   

    faint,没人吗?帮忙分析一下也行啊。
      

  2.   

    我们做的三层结构是不需要在客户端安装的。所有的组件放在服务器上,客户端通过IE自动下载。现在的服务器就是我们开发用的服务器,只是客户机不同。控件要用到的VB运行库也打包放到服务器上了,在客户第一次运行时,会自动下载。我说过有两个控件运行正常,证明不是因为缺少VB运行库的问题,何况如果缺少VB运行库,出错提示也不同的。另外控件一定是二进制兼容,否则每次生成的ClassID会不同,客户端就无法下载了。
    谢谢参与!
      

  3.   

    这个问题在使用 winsock.ocx(好象是这个名字)时也会出现,如果没有装VB的机器上
    注册这个组件。
    可以用 "ActiveX License" 在MSDN上查一下。
      

  4.   

    to firechun(天火)
       你能帮我一个忙吗?我想用VB开发三层数据库,用MTS(Microsoft Transaction Server )增强中间层的可伸缩性。结果引用Microsoft Transaction Server Type Library,发现在WIN2000里,要用到COM+,才能用MTS。有开发这方面的经验或什么资料这类,给我讲一讲。如有资料请发到[email protected].  你使用nt 4.0还是win2000平台的。谢谢!如果,你有什么关于三层编程的经验,也可以给我!谢谢! 
      

  5.   

    你这不是三层结构的问题,你用的是VB的哪个版本的啊?
    如你的机器上装了vb5.0又有vc6.0或vb6.0 那摸在你打包时就要注意是否你用到的库文件(ocx,dll,olb等)都要打包.
      

  6.   

    to white:
    你的分析有些道理,我往这方面查一查。
    to meteor_liang:
    win2000上使用MTS,需要配置COM+,到MSDN上查一下DCOM,对你有帮助。
      

  7.   

    BTW:
        在VB中考虑到用户开发控件的辛苦,特意添加了许可证选项,分为开发许可和运行许可,我甚至遇过在VB中使用控件无法创建对象,但安装了VFP后就解决问题这样的事,就是因为所用空间无开发许可LIC。
        根据你所说,所有控件都是你们自己写的,可能你们不小心勾上了需要运行时许可,因为运行许可意味在装有开发平台的机器上可以直接使用创建该控件的实例,而脱离了开发环境就会出错。
        所以我建议你先查看你们自己开发的控件的许可证选项,如果无疑问就检查在你们自己开发的控件中所使用的开发资源控件,在企业版控件和SP4、SP5中有一部分属于上述情况。
      

  8.   

    please use java instead vb.u will get help with us
      

  9.   

    在WIN2000裡,COM已經變為COM+,在VB裡要引用COM2.O Library才能用MTS.
      

  10.   

    控件的许可证是指不能在开发环境中使用,不是不允许执行,是为了防止别人盗用你的控件而研制的。与你的问题无关。
    问一个问题,你的客户端OCX是调用中间件还是直接访问数据库的?如果是中间件在客户端调用服务器COM+对象之前必须在客户端安装过该服务器部件(DLL),仅仅安装TLB文件是不行的(重要!!千万不要在客户端安装TLB文件,这会引发调用冲突造成远程部件创建失败),这点很重要。
    如果你怕DLL泄漏出去你可以使用VBR文件和CLIREG32来配置客户计算机。附:MSDN中关于许可证的解释
    Require License KeyEnables licensing for ActiveX Control projects (projects that compile to .ocx files), not to .exe or .dll files. A Visual Basic license file (*.vbl) will be created when you build the project. The *.vbl must be registered on the user’s machine for the components to be used in the design environment!!!! The Package and Deployment Wizard will build a setup program that properly registers the information in the *.vbl file on the end user's machine when that setup program is run.推荐你一本书《COM+与Visual Basic 6分布式应用程序设计》MSPress出版,机械工业出版社发行
    有问题找我 [email protected]
      

  11.   

    bucher说的对,不是许可证问题。
    我现在怀疑可能是由于在不同机器上编译,可能会有中断二进制兼容的事情,如果是这样,似乎只有重建工程才能解决。另外代码用VSS管理,会不会在编译时,因为没有得到控件的最新版本,在二进制兼容方面出了问题。如果我的判断是正确的,有办法解决吗(不重建工程)?
      

  12.   

    你SP6装过吗?老版本的VB6有可能有这个Bug。
      

  13.   

    干吗用vb吖?
    delphi的三层很好,特别还有dcom和socket方式的透明转换,太爽了
      

  14.   

    楼上delphi的,说风凉话没有什么意思,有本事你来解决问题。
    btw:透明转换没有什么值得骄傲的,dcom本来就就可以在socket端口跑的,所谓的socket转换不过borland自己做了一个类似于DcomOnSocket的东西,这和DCOM有什么区别?要是有一个HTTP-DCOM透明转换那还有些价值。
      

  15.   

    两层结构B/S上我就碰到过此问题,在装过Visual Studio的机器上正常,在没装过的机器就运行不了,那是因为Licence的原因,只要在Client端装上Visual 的控件就可以了,你是否要进一步总结出问题与正常的区别.
      

  16.   

    我倒,没装控件和没有开发License是两回事。
      

  17.   

    应该说bucher分析得比较合理,虽然问题还没解决 :( ,不过也要多谢你,现在唯一的方法似乎只有重建工程了。sigh
    给分了。
      

  18.   

    to 天火
    你们用IE做客户机,具体的原理是什么,有没有用到第三方的工具?还是用的WIN2000的
    终端服务?