【问题标题】:How do I call a method in a custom ActiveX dll using java/vb script如何使用 java/vb 脚本调用自定义 ActiveX dll 中的方法
【发布时间】:2009-05-13 14:02:56
【问题描述】:

我使用 VB6 创建了一个 ActiveX dll,并使用打包和部署向导将其打包,从而生成了一个 cab 文件和一个演示 HTML 页面。

这个 ActiveX dll 包含一个 simgle 方法,它返回一个字符串并且不接受任何参数。

我遇到的麻烦是,当我调用该方法时,我总是得到 “对象不支持此属性或方法” 错误。但它确实支持我正在调用的方法。

我想要实现的是让用户访问其中包含一些 java 或 vb 脚本的网页,该脚本调用我的 ActiveX 中的方法并获取返回的字符串值。该 DLL 旨在被称为客户端。

我的测试网页如下:

<html>
<head>
    <title>SaveClipboardImage.CAB</title>
    <object id="Class1" classid="CLSID:" codebase="SaveClipboardImage.CAB#version=1,0,0,0"></object>
    <script type="text/javascript">
            function displaymessage()
            {
                try
                {
                var filename;

                filename = Class1.SaveClipboardToImage();

                alert(filename);
                }
                catch(e)
                {
                    alert(e.message);
                }               
            }
    </script>
</head>
<body>      
    <input type="BUTTON" onclick="displaymessage()" value="preview" />
</body>
</html>

我显然做错了什么,但我不知道是什么。 我是否必须对 VB6 项目中的类做一些特殊的事情才能访问该方法? 我是否错误地调用了 DLL?

感谢您的帮助。

【问题讨论】:

  • 你能贴出SaveClipboardToImage的VB6代码吗?

标签: javascript dll vb6 vbscript activex


【解决方案1】:

Javascript 对 Class1 一无所知。您必须将对象放入 javascript。

试试:

        function displaymessage()
        {
            try
            {
                var filename;
                var class1 = document.getElementById("Class1");
                filename = class1.SaveClipboardToImage();

                alert(filename);
            }
            catch(e)
            {
                alert(e.message);
            }                       
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-26
    • 2016-12-24
    • 1970-01-01
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多