偶刚刚学COM, 照着书在记事本里有VB写了几句代码,但是提示错误,如下: Windwos Script Host 
        脚本:.......、\use.vbs 
        行:1 
        字符:1 
        错误:ActiveX部件不能创建对象:"Simple6.DispSimple" 
        代码:800A01AD 
        源:  Microsoft VBScript 运行时错误 记事本了的代码如下:       set obj=createobject("Simple6.DispSimlple") 
    MsgBox obj.Upeer("hello") 这个是怎么回事呢,新手,请大家指点一二! 

解决方案 »

  1.   

    com控件是双接口吗?如果不是,不可以在脚本中调用.
      

  2.   

    还有,我连接,编译过后,产生的消息如下:Performing registration
    E:\COM\Sample1>cd \ 
    E:\>cd  
    E:\
    E:\>cls
    系统找不到指定的路径。
    Error executing c:\windows\system32\cmd.exe.Sample1.dll - 1 error(s), 0 warning(s)怎么感觉注册失败呢??怎么回事?
      

  3.   

    注册命令行是怎么写的?怎么会要执行cmd.exe呢?直接用regsvr32.exe dispexample.dll来注册。
      

  4.   

    你编译时就失败了,肯定无法在脚本中调用了。
    检查一下link选项的subsystem是否为console,如果是,修改成windows试试。
    如果还不行,则重新创建工程,使用默认的工程选项进行编译再试一试。
      

  5.   


    用ATL来编写组件控件COM时,不是它自动会注册的么,怎么还要手动注册的?还有,我现在怎么编译都通不过的,是不是VC6.0安装程序有问题了?
      

  6.   

    HKCR
    {
    Simple6.DispSimple.1 = s 'DispSimple Class'
    {
    CLSID = s '{B7D101C2-1D9E-4CBC-8F2C-DC3DB7A1BC1C}'
    }
    Simple6.DispSimple = s 'DispSimple Class'
    {
    CLSID = s '{B7D101C2-1D9E-4CBC-8F2C-DC3DB7A1BC1C}'
    CurVer = s 'Simple6.DispSimple.1'
    }
    NoRemove CLSID
    {
    ForceRemove {B7D101C2-1D9E-4CBC-8F2C-DC3DB7A1BC1C} = s 'DispSimple Class'
    {
    ProgID = s 'Simple6.DispSimple.1'
    VersionIndependentProgID = s 'Simple6.DispSimple'
    ForceRemove 'Programmable'
    InprocServer32 = s '%MODULE%'
    {
    val ThreadingModel = s 'Apartment'
    }
    'TypeLib' = s '{7076E07D-A9AE-4085-8441-6E4A3E652D73}'
    }
    }
    }用ATL生产的注册文件,我看了下,就上面这么点,但是我感觉不对啊,你们看下,好像路径都没有的···
      

  7.   

    InprocServer32 = s '%MODULE%'   路径在这儿它是自动注册的,但问题是你要检查一下它执行注册的命令行是什么,为什么会启动CMD.EXE的
      

  8.   


    我现在手动注册 或者 VC6.0的菜单选项里注册 ,能注册进去的,接口也可以用,但是为什么会编译通不过呢,暴汗!怎么检查为什么会启动CMD.EXE呢?
      

  9.   

    有一个问题,就是 COM在项目中,一般是用来干什么的?是类似功能模块集合么?我们对COM的调用,可以用DLL的形式来调用,哪我们不如直接编写DLL好了啊···
      

  10.   

    楼主从这里可以了解些COM组件设计的一些基础内容
    http://www.vckbase.com/vckbase/columnist/yangfeng/COM应该说是一种组件设计思想,它有一个基础的框架,设计人员都按照这种规则去设计接口,
    这样的话其他人在使用的时候只需要知道其接口的CLSID,就可以很方便的进行接口调用与使用
    而且在升级扩展软件的时候又可以保证在满足新功能的同时又向下兼容旧版
      

  11.   

    COM说白了就是给那些不懂COM的人用的比如VB程序员,java程序员...C# web程序员之类的
      

  12.   

    我1楼看到18楼也没弄明白,楼主到底想要干什么?
    如果你想问com为什么取代dll的话,简单的说就是,com将dll标准化了而且是全球标准化.这样就不会出现系统中dll同名不同功能或者dll不同名但却是提供一模一样的功能的事情