to RushDJ() 
我用vc6作的控件就是ActiveX的。

解决方案 »

  1.   

    先把VB控件用 Regsvr32 -i 注册一下,然后添加引用时选择COM组件,在列表里选择你刚才注册 VB 控件即可。
      

  2.   

    to FJGoodGood(_FJ_强中强):
    ...
    Regsvr32 -i 注册一下,然后添加引用时选择COM组件
    ...
    这个控件 我已经住测过了  也添加引用了
      

  3.   

    可能该控件还需要别的dll,保证一起注册进来即可
    因为单纯看System.Runtime.InteropServices.COMException这个异常的话,应该是COM内部抛出来的
    所以说,COM本身也许没有什么问题,你的C#不是也可以识别这个COM中的各种属性方法了吗?可能COM内部的处理又调用了VC6的一些老的库,比如MFC4.2,那么请把这些也一起注册进来另外,给楼主推荐个工具:COM Explorer v2.0
    用来看dll或ocx的信息,里面会有该dll或ocx依存那些库的信息,照着部署就是了。
      

  4.   

    to douxulai(冰汽水) :
    谢谢你的回复可是我现在是在自己本机上运行, 我的机器上各种编译环境都有。
    vs6, vs.net, psdk ....我也很奇怪,为什么会这样...
      

  5.   

    这应该是一个运行期错误。也就是说你所编写的COM组件在运行的时候突破了InterOpServices的限制而导致了COM与.net交互的失败。原因可能很多。建议参考InterOpServices的文档。
      

  6.   

    只能完全封装,属性什么的就别想用了,数据交换用SOCKET吧!实现起来比较重杂.