放一个隐藏的form和该空件,然后增家对其引用

解决方案 »

  1.   

    可是我确实不想为一个纯数值处理的函数再添加一个FORM啊。
    原先的OCX里边的方法很复杂,我自己写不来,我写DLL是由于需要对那个ABC方法进行一些功能扩展。
      

  2.   

        dim dd as object
        Set dd = CreateObject("project1.usercontrol1")
        dd.abc
    一定正确,多多加分!!!!!!!!!!!!!!!!!!!!!!!
      

  3.   

    mrlining(ball)大虾,算求你啦,Set dd = CreateObject("project1.usercontrol1")中的project1是那个东东,我的A.OCX是编译好的ACTIVEX OCX。
      

  4.   

    createobject里放a.ocx的Progid,
    可以用OLE View找一下
      

  5.   

    sfireball(阿飞),具体OLE View?我没这方面的经验。
      

  6.   

    project1.usercontrol1project1是ocx的工程名,usercontrol1是ocx的控件名
      

  7.   

    呵呵,visual studio 的工具里面有一个OLE View啊
    使用他,你打开all object分支,找一找对应于a.ocx的项
    如果a.ocx是用你自己的工程make的,那就简单了
    progid就是你的工程名.控件名
      

  8.   

    OCX是别人做的,我如何知道project1是何鸟工程名?
      

  9.   

    sfireball(阿飞),总算听明白了一些,呵呵,谢谢点拨之恩:)
    在这里再问一下,在我的注册表查到的东东到别的机子还能正常用吗?假如别人在别的机子引用我的DLL呢?
      

  10.   

    如果你的ocx以及dll没有注册的话,也就是说注册表里找不到这样的项的话,那就不能用
    呵呵,如何注册?
    使用 activex control test container 也是studio的一个工具
    也可以用命令行
    regsvr32
      

  11.   

    这个我知道呵,我是说比如我的某个程序包含了我现在要编写的DLL,发布到别的机子,按上边的方法是否会正常运行?假如我的同事需要我的DLL开发她的软件,把我的DLL和那个该死的OCX拷到他的机子是否就可以爱怎么用就怎么用?
      

  12.   

    是那个HKEY_CLASSES_ROOT\XOCX\CLSID里边的一大串东西吗?我试了,不行。
      

  13.   

    不是,再查
    别忘了格式,xxxx.xxxx
      

  14.   

    什么格式?是这样吗:
    Set dd = CreateObject("5ACBB957-5C57-11CF-8993-00AA00688B10")
      

  15.   

    当然不是
    这是它的guid
    注册表里能够查到a.ocx肯定不止一项
    找到对应的xxxx.xxxSet dd = CreateObject("xxxx.xxx")或者查5ACBB957-5C57-11CF-8993-00AA00688B10
      

  16.   

    很好,sfireball(阿飞),你需要多少分,说。
    问题解决了,很高兴,谢谢啊。
    交个朋友,好吗?我做工业自控的,QQ:5043160
      

  17.   

    sfireball(阿飞),你的回答是最好的,但在这里我不能把100分都给你,否则会得罪别的大虾,呵呵。给你51分吧。其它的同志,如果有对给分不满意,我另开帖子给:)谢谢大家。