![]() |
COM Server kann per VBScript nicht benützt werden
Hi,
ich habe ein kleines Testprogramm geschrieben, dass z.B. die Methode:
Delphi-Quellcode:
hat.
function TTest1.Add(zahl1, zahl2: Integer): Integer;
begin Result := zahl1 + zahl2; end; Nun möchte ich per VBScript diesen COM Server mit der Funktion Add benutzen. Jedoch klappt das überhaupt nicht! VBScript:
Code:
Weis nicht mehr weiter warum das nicht funktioniert!
Option Explicit
Dim ComObj Dim Ergebnis Err.Clear: Set ComObj= GetObject(, "Project1.Test1") If Err.Number = 424 Or Err.Number = 429 Then Set ComObj = CreateObject("Project1.Test1") End If Ergebnis = ComObj.Add(4,4) Kann da jemand helfen!? |
Re: COM Server kann per VBScript nicht benützt werden
Du mischst eine VCL-formularanwendung mit einer COM-Bibliothek?
Du musst eine Bibliothek erstellen (DLL) und diese registrieren. Edit: Datei > Neu > ActiveX-Bibliothek Edit2: Anscheinend willst du die "Späte Bindung" einsetzen, dann musst du anstatt einem COM-Objekt ein Automatisierungsobjekt in der ActiveX-Bibliothek anlegen. |
Re: COM Server kann per VBScript nicht benützt werden
Liste der Anhänge anzeigen (Anzahl: 1)
Super Danke!
Mit einem Automatisierungsobjekt funktioniert es sofort! VBScript:
Code:
Option Explicit
Dim ComObj Dim Ergebnis Err.Clear: Set ComObj= GetObject(, "Project1.Test2") If Err.Number = 424 Or Err.Number = 429 Then Set ComObj = CreateObject("Project1.Test2") End If Ergebnis = ComObj.Add(4,4) |
Re: COM Server kann per VBScript nicht benützt werden
:gruebel: Und das ganze funktioniert in einer VCL-Anwendung ohne das du die üblichen Funktionen exportierst?
|
Re: COM Server kann per VBScript nicht benützt werden
Liste der Anhänge anzeigen (Anzahl: 1)
ist der COM Server registriert?
probier mal die COM Beispiele im Anhang. ist aus dem Buch "Delphi6 für Profis" Vielleicht klappt das dann .. hab das Buch sogar im Netz gefunden, die letzten Kapitel über COM fehlen da wohl aber. Das Buch ist aber vergriffen ... ![]() |
Ah, der "Out of Process Server" registriert sich selbst bei der ersten Verwendung.
|
Re: COM Server kann per VBScript nicht benützt werden
Habe nun noch folgendes Problem:
Wenn das Script aufrufe:
Code:
Dann funktioniert es genau ein mal! Beim zweiten mal Ist die Err.Number nicht mehr 0 und das Script wird beendet.
Dim Obj
Dim Ergebnis If IsRunning Then Set Obj = CreateObject("Project1.Test2") Ergebnis = Obj.Add(3, 4) End If Function IsRunning On Error Resume Next Err.Clear: Set ComObj = GetObject(, "Project1.Test2") If Err.Number = 424 Or Err.Number = 429 Then IsRunning= False Else IsRunning=True End If End Function Stoppe ich nun meine Project1.exe und starte sie wieder neu geht es wieder ein mal. Habe ich da in der COM Definition noch was falsch das das Script nur ein mal ein Object zuweisen kann? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz