Как я могу вызвать метод в пользовательских DLL ActiveX с помощью сценария Java / VB - PullRequest
5 голосов
/ 13 мая 2009

Я создал dll ActiveX с использованием VB6 и упаковал его с помощью мастера Package & Deployment Wizard, который привел к созданию файла cab и демонстрационной HTML-страницы.

Эта библиотека ActiveX содержит метод 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?

Спасибо за вашу помощь.

1 Ответ

6 голосов
/ 13 мая 2009

Javascript ничего не знает о Class1. Вы должны получить объект в JavaScript.

Попытка:

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

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