Hi Leute, ich hab ein kleines Problem.
wir setzen viele Produkte einer großen deutschen Automatisierungsfirma ein, welche
auch Programmbeispiele zur Ansteuerung ihrer Produkte mitliefert, aber leider nur in VB und V-C++.
Wir Programmieren aber in Delphi, also muss ich diese Programme, oder teile davon nach Delphi übersetzen.
An folgenden VB-Code beiße ich mir z.Zeit die Zähne aus . . .
Quelltext
1: 2: 3:
| Set objFileNode = GetObject("MC://domain/HD/mpf.dir/" Set objIMCFile = objFileNode Call objIMCFile.Create ("*.mpf", txtMPF & ".mpf", MC_CREATE_NORMAL,sourceFile) |
Daraus habe ich folgenden Delphi - Code erzeugt :
Quelltext
1: 2: 3:
| objFileNode := IMCObjectDefault(GetObject('MC://domain/HD/mpf.dir/')); objImcFile := IMCFile(objFileNode); objImcFile.Create('*.mpf',txtMPF + '.mpf',MC_CREATE_NORMAL,sourceFile); |
Meiner Meinung nach ist meine Fehler die Übersetzung der Virtual Basic Funktion "GetObject".
Ich benutze dafür in Delphi folgende Funktion :
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| function GetObject(Name : String): IDispatch; var Moniker : IMoniker; Eaten : Integer; BindContext : IBindCtx; Dispatch : IDispatch; begin OleCheck(CreateBindCtx(0, BindContext)); OleCheck(MkParseDisplayName(BindContext, PWideChar(WideString(Name)), Eaten, Moniker)); OleCheck(Moniker.BindToObject(BindContext, NIL, IDispatch, Dispatch)); Result := Dispatch; end; |
Beim Ausführen bekomme ich in der 2. Zeile der Funktion "GetObject" nach einiger Zeit einen "EOleSysError".
Ist vielleicht die Delphi - Entsprechung der VB-Funktion "GetObject" falsch ? Mit welcher Delphi Funktion kann man
das sonst übersetzen ?
Vielen Dank bereits im Vorraus für Eure Hilfe. . .
Bernd
Moderiert von
Christian S.: Code- und Delphi-Tags hinzugefügt