2009-05-13 7 views
5

Tôi đã tạo một dll ActiveX bằng VB6 và đóng gói nó bằng cách sử dụng Trình hướng dẫn triển khai gói & đã dẫn đến tệp cab và trang HTML demo.Làm cách nào để gọi một phương thức trong dll ActiveX tùy chỉnh bằng cách sử dụng tập lệnh java/vb

ActiveX dll này chứa phương thức mô phỏng trả về một chuỗi và không chấp nhận đối số.

Sự cố tôi gặp phải là khi tôi gọi phương thức tôi luôn nhận được "Đối tượng không hỗ trợ thuộc tính hoặc phương pháp này" lỗi. Nhưng nó hiện hỗ trợ phương pháp tôi đang gọi.

Điều tôi đang cố gắng đạt được là người dùng truy cập trang web có một số tập lệnh java hoặc vb trong đó gọi phương thức trong ActiveX của tôi và nhận giá trị chuỗi trả về. DLL được dự định được gọi là phía máy khách.

trang web thử nghiệm của tôi là như sau:

<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> 

Tôi rõ ràng là làm điều gì đó sai, nhưng tôi không biết những gì. Tôi có phải làm điều gì đó đặc biệt cho lớp trong dự án VB6 để tôi có thể truy cập phương pháp này không? Tôi có gọi cho DLL không chính xác không?

Cảm ơn sự giúp đỡ của bạn.

+0

Bạn có thể gửi mã VB6 cho SaveClipboardToImage? –

Trả lời

6

Javascript không biết gì về Class1. Bạn phải đưa đối tượng vào javascript.

Hãy thử:

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

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