Einzelnen Beitrag anzeigen

EMxRay

Registriert seit: 16. Jan 2020
Ort: Oberkochen
4 Beiträge
 
Delphi 11 Alexandria
 
#1

Probleme mit Olevariant in Activex

  Alt 16. Jan 2020, 19:07
Delphi-Version: 10.3 Rio
Hallo an die Experten,

ich bin Neuling in Delphi seit letztem Jahr und programmiere nur gelgentlich in meiner Freizeit. Vorkenntnisse sind VB, cSharp. Aber alles selber beigebracht durch Bücher und Inet.
Habe jetzt ein größeres Projekt in Delphi begonnen, ist auch kurz vor Fertigstellung. Es fehlen nur noch ein paar Logging Funktionen und Fehlerabfragen.
Und hier mein Problem:
Ich habe ein ocx eingebunden und eine tlb erstellen lassen. Alles soweit ok, ich kann darüber mit einem Server kommunizieren. Kommandos, Befehle, Parameter abfragen, alles wunderbar. (ist eine Gerätesteuerung)
Nur die Funktion zur Fehlerabfrage will nicht.

Die Deklaration in der tlb lautet:

function TApi.GetLastError(var Error: OleVariant): Integer;

Mein Aufruf im Programm:

Delphi-Quellcode:
function GetLastRemoteError(var Buffer: WideString): Boolean;
var
  tmp: OleVariant;

begin
  tmp:= '';
  iG_Ret:= FRM_BackGrd.EMAPI.GetLastError(tmp);
  Buffer:= tmp;
  Result:= True;
end
Die Beschreibung der ocx Funktion lautet:

long GetLastError(VARIANT* Error)
[out] Error is the error string associated with the error code for the last error
Remarks:
This call will return a VT_BSTR VARIANT associated with the last error.
Return Value:
If the call succeeds, it returns 0. If the call fails, an error code is returned from the function.

Ich bekomm als Ergebnis (Buffer Variable) nur die Meldung 'unable to translate mnemonic'.
Wenn ich die tmp Variable nicht mit ='' zuweise, bekomme ich nur 'nichts zugewiesen' zurück.
Ich hab diverse Varianten durchprobiert (Array, Pointer), aber nichts hilft.
Hat jemand eine Idee, was ich da nicht richtig mach?

Gruß,
Heinz
Heinz
  Mit Zitat antworten Zitat