最近公司要求我要做些控件,主要功能是操作数据库,我用VS2005的C#做,但做好后给VC6调用,但怎么样也调用不了,现在项目比较急,请在这方面有经验的给点建义。调用不了有很多原因,一、在VC里面就找不到这个控件 二、VC调用这个控件是不是要安装.net柜架 三,VC调用的接口在C#中具体怎么声明!谢谢了!

解决方案 »

  1.   

    是有很大难度的;还是用VC6做控件VC6调用吧,VC6做东西也没这么难;
      

  2.   

    1、用Com
    2、想不安装.net framework就用其他的能生成本地代码的语言,如vb6.0,vc++,delphi等
      

  3.   

    .net framework是必须的,除非你换成其它语言.
    C#做的东西要导出成为COM组件有以下几个条件:
    1.程序集是强签名的.
    2.程序集必须安装到gac.
    3.导出的类必须是ComVisible = true的.这样通过regasm注册成为com组件后就能在vc/vbs/js/html
    里用了.继承自winform里control的类会成为activex控件,
    直接在html里用<object classid="clsid:xxxxxxxx"></object>
    就能用.脚本只要用 "namespace.classname"就能创建com对象.
    vc的话呢...实现import一下应该就行了.
      

  4.   

    请问在C#中调用VC写的ocx控件时提示 :创建组件"AxHost"失败 这是什么原因
      

  5.   

    先检查下创建的线程是不是STAThread.
    如果是的话多半是你的ocx的问题.axhost是.net容纳activex控件的东东.
    一般来说是没问题的.windows media player是vc写的吧.直接导入就能拖到窗体上.
      

  6.   

    首先ocx控件在VC里面调用是没有问题的,怎么查创建的线程是不是STAThread,现在该从哪方面解决这个问题呀
      

  7.   

    一般来说就是你C#的Main函数前面有没有个[STAThread]
      

  8.   

    C#创建COM控件供VC调用其实很简单,这个问题已解决,如果有需要 的朋友,可以问我,贴子要结了