用VC6.0写的一个COM,在win7系统下,VS2008,VS2010均不能用,可以注册,在工具栏里可以出现该控件,拖到到窗体上时就报错:

解决方案 »

  1.   

    具体问题具体分析。大部分ActiveX控件可以很好的在Win7下工作。不能工作可能是代码本身有bug,
    或者不严谨,或者因为权限什么的(Win7权限之类比较严格)。有源代码的话,在Win7下单步调试即可。
      

  2.   

    怎么发布了图片!!!!
    创建组件“AxHost”失败。错误消息为:
    “System.BadImageFormatException:”没有为此类型库注册包装程序集。
    在System.Windows.Forms.Design.DocumentDesigner.AxToolboxItem.Create.ComponentsCore(IDesignerHost host)

    System.Drawing.Design.ToolboxItem.CreateComponentsCore(IDesignerHost host,IDictionary defaultValues)

    System.Drawing.Design.ToolboxItem.CreateComponents(IDesignerHost host,IDictionary defaultValues)

    System.Windows.Forms.Design.OleDragDropHandler.CreateTool(ToolboxItem tool,Control parent,Int32 x,Int32 y,Int32 width,int32 height,Boolean hasLocation,Boolean hasSize,ToolboxSnapDragDropEventArgs e)"
    !!!!!说明在XP上用vs2008没有问题。
      

  3.   

    用 aximp 创建包装类。 在VS2010命令行状态下。例如:aximp d:\myctrl.ocx 
    Gacutil -i Axmy.dll 
    Gacutil -i my.dll
      

  4.   

    上面换成你自己的名字。你的错误信息是缺乏 。NET针对COM的包装类。用aximp可创建之。
      

  5.   

    是这样的。我的组件有4个dll,  注册的时候只有注册一个qwe.dll。就OK,那我怎么
    aximp c:\qwe\qwe.dll  
    这样会生成两个dll。但是没有用啊,这两个dll我拖到窗体上的时候也可以生成的。
    Gacutil -i c:\qwe\qwe.dll  
    出现将程序加载到缓存失败:该模块包含一个程序集清单。
      

  6.   

    你的错误信息是缺乏 。NET针对COM的包装类。用aximp可创建之。