大侠好!
    在网上找了不少资料,还是没有弄明白怎么在asp中调用activexDLL。我把基本信息提供在这里,希望大侠们给予详细指点!
A 创建ActiveX DLL:
1 打开vc++6.0,选择ATL COM  Wizard,新建名字为ActiveXDLL的dll。
2 新建NEW ATL Object ->ActiveX Server Compoent,命名为CCActiveXDLL。
3 添加方法Run()<跳出对话框作为测试>。
4 Tools->Register Control 来注册。
B 在ASP中使用:
我不会:)。网上讲的好像不管用,我测试失败了,这里就不说了,请各位大侠给讲讲吧!

解决方案 »

  1.   

    ASP是作为服务进程运行的,所以弹出对话框只会阻塞程序的运行,不会起到想要的效果。Set oTest=Server.CreateObject("类的描述符")

    Set oTest=CreateObject("类的描述符")不知具体是哪失败了?===========================================
     赠人以言,重于珠玉,伤人以言,重于剑戟。——孙子
     CSDN助手 签名走马灯
      

  2.   

    大侠们,现在的问题在于在asp中创建失败了,提示<ActiveX对象创建失败>,不知道怎么创建。我想跟我的Run()成员函数应该没有关系吧!
      

  3.   

    是哪行代码出的错,帖出来看看=================================================
     当你幸福的时候,切勿丧失使你成为幸福的德行。——莫罗阿
     CSDN助手 签名走马灯
      

  4.   

    我按照网上查到的创建方法是这样的:
    A 创建ActiveX DLL:
    1 打开vc++6.0,选择ATL COM  Wizard,新建名字为ActiveXDLL的dll。
    2 新建NEW ATL Object ->ActiveX Server Compoent,命名为CActiveXDLL。
    3 添加方法Run()<跳出对话框作为测试>。
    4 Tools->Register Control 来注册。B 在ASP中使用代码如下:
    <%
    dim a
    dim b
    set a =createobject("ActiveXDLL.CActiveXDLL")
    set b=a.Run()
    response.write b.noer
    %>
      

  5.   

    http://msdn.microsoft.com/workshop/author/dhtml/reference/objects/object.asp
      

  6.   

    说了,实现安全接口ATL比较简单
    class ATL_NO_VTABLE CXXXXXX:
    public IObjectSafetyImpl<CXLink, INTERFACESAFE_FOR_UNTRUSTED_CALLER>,BEGIN_COM_MAP(CXXXXXX)
    COM_INTERFACE_ENTRY(IObjectSafety)
    END_COM_MAP()
      

  7.   

    在服务器端调用,是不需要实现安全接口的。
    疑点:
    1、在你提供的步骤中,怎么没有编译这一步?如果编译成功,会自动注册DLL,不需要再手工注册了。
    2、我测试过,创建对象a是没有问题的。是不是a.Run()中创建对象b出错了?==========================================
     你不能奢望同时是伟大的而又是舒适的。——巴里
     CSDN助手 签名走马灯
      

  8.   

    楼上哥们!
    你试过成功了?
    我当然编译过了 哈哈 多了一步注册总不会错吧!
    我的怎么就是创建失败呢?提示:ActiveX 对象创建失败!
      

  9.   

    不错,set a =createobject("ActiveXDLL.CActiveXDLL")是成功的。=================================================
     当你幸福的时候,切勿丧失使你成为幸福的德行。——莫罗阿
     CSDN助手 签名走马灯
      

  10.   

    我找了个工具 aspstudio调试,错误如下:ASP服务器发现运行时错误:
    错 误 码:0x800A01AD
    错误代码:set a =createobject("ActiveXDLL.CActiveXDLL")
    错误描述:ActiveX 部件不能创建对象: 'ActiveXDLL.CActiveXDLL'怎么回事啊?
      

  11.   

    用IIS试一下看看==================================
     CSDN助手 全面支持CSDN论坛
     监视、收藏、历史、签名走马灯
      

  12.   

    哥们,你真逗,我就是在IIS中用的啊!
    aspstudio只是个壳!
    我再试试!
      

  13.   

    哦,受教了================================================
     你若要喜爱你自己的价值,你就得给世界创造价值。——歌德
     CSDN助手 签名走马灯
      

  14.   

    楼上的 还是不行!
    要不我给你说说我的E-mail 你把你的测试代码让我test一下?
    [email protected]
      

  15.   

    海子 你的代码收到了!
    可怜我还是不会用!
    在asp里面怎么用啊!我都晕了!
      

  16.   

    你的环境是vc7.0
    创建的工程名是:ActiveXDLLPS
    生成:ActiveXDLLPS.lib
    我在asp里面怎么测试?这样不行吧!
    <%
    dim a
    set a =createobject("ActiveXDLLPS")
    %>
      

  17.   

    ActiveXDLLPS是自动生成的,还有一个工程叫ActiveXDLL
    <%
    dim a
    set a =createobject("ActiveXDLL.CActiveXDLL")
    %>
    ================================================
     你若要喜爱你自己的价值,你就得给世界创造价值。——歌德
     CSDN助手 签名走马灯
      

  18.   

    哥们!谢了!
    可以创建了,但是我在CActiveXDLL中添加Run()函数后:<%
    dim a
    dim b
    set a =createobject("ActiveXDLL.CActiveXDLL")
    set b=a.Run()    //这里出错:对象不支持此属性或方法: 'Run':(0x800A01B6)
    response.write b.noer
    %>
    Why?
      

  19.   

    看看a是否是nothing.
    改成server.createobject
      

  20.   

    //这里出错:对象不支持此属性或方法: 'Run':(0x800A01B6)a没有正确创建,也就是楼上说的,可能是nothing
      

  21.   

    那个aspstudio看不到a的内容只是用{}来表示,应该不空。
    改为server.createobject()仍然提示:<对象不支持此属性或方法: 'Run':(0x800A01B6)>
    >!
      

  22.   

    if a is nothing then
      Response.write "a=nothing"
    end if
      

  23.   

    调试了,a不是nothing 直接跳到 set b=a.Run() 去了!
    难道dll有问题?
      

  24.   

    你把那个dll在vb中添加引用,看有没有Run()方法
      

  25.   

    a.Run() 返回的是否是对象,如果不是对象用了set就是不合法的。
      

  26.   

    <%
    dim a
    dim b
    set a =createobject("ActiveXDLL.CActiveXDLL")
    set b=a.Run()    //这里出错:对象不支持此属性或方法: 'Run':(0x800A01B6)
    response.write b.noer
    %>asp中为server.createobject("类名")
    注意"类名"要找对,即为注册表达式class_root中的键
      

  27.   

    你的activex里要有run这个对象或是属性才可以的啊。