' schrieb:Da würde ich tricksen. Rückgabewert als U32 definieren.Und dann such mal im Forum nach Moveblock, damit kannst du Speicherbereiche kopieren.
Wie ich das sehe, geht es anders herum.
Die Funktion verlangt drei Zeichenketten und liefert einen numerischen Wert zurück. Die drei Zeichenketten werden als Pointer auf einen WideString (WideChar[]) übergeben.
Ich würde mal folgendes probieren: String normal wie in LV üblich definieren und mit einem Wert beschreiben. Diesen String mit dem Win32API-Befehl "StringToWideString" in einem WideString (weil es in LV keine WideStrings gibt, kommt ein ArrOfU16 raus) konvertieren. Diesen Puffer übergeben.
Problem: Ob der Befehl genau "StringToWideString" heißt, ist mir gerade entfallen. Und ob das Ergebnis dieser Funktion als ArrOfU16 manipulierbar ist, kann ich nicht auf Anhieb sagen.
Ich würde mal auf NI.com nach WideChar, WideString etc suchen. Auch die Suche hier im Forum nach WideString könnte was bringen.
Nachtrag:
Natürlich hat JensG Recht. Das von mir beschriebene Vorgehen trifft für die eine Funktion mit den drei Parametern zu. Für die andere Funktion gibt es die API-Funktion WideStringToString.