Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi DLL-Callback-Funktion PChar übergeben=>Daten kaputt (https://www.delphipraxis.net/14443-dll-callback-funktion-pchar-uebergeben%3D-daten-kaputt.html)

Benedikt 9. Jan 2004 14:31


DLL-Callback-Funktion PChar übergeben=>Daten kaputt
 
Hallo,

ich rufe von einem Programm aus eine DLL auf, auf die ich in der Regel keinen Einfluss habe, da das Plugins sind.
Die DLLs werden dynamisch geladen, von der DLL wird dann die Callback-Funktion im Programm aufgerufen - soweit kein Problem.

Die Callback-Funktion soll nun einen PChar an die DLL zurückgeben, was eigentlich auch gut funktioniert.
Wenn ich jetzt aber einen PChar wie z.B. '001' übergebe, und mir das ganze dann testeweise aus der DLL mit Showmessage anzeigen lasse, dann sehe ich nur noch ein kleines Rechteck, keine '001' mehr.
Das gleiche passiert z.B. mit dem Dateinamen: 'Unbenannt [1]'
Wird dieser zurückgegeben steht in der DLL in dem PChar statt [1] ein Rechteck, also wohl ein nicht darstellbares Zeichen.

Woher kommt dieses Problem und wie lässt es sich beheben, das in der Anwendungen noch das richtige drinsteht, sobald der Wert aber an die DLL zurückgegeben wurde, einige Zeichen falsch sind?

Danke im Vorraus

MfG Benedikt

Assarbad 9. Jan 2004 14:48

Re: DLL-Callback-Funktion PChar übergeben=>Daten kaputt
 
2 Möglichkeiten:
1. Falsche Funktionsdeklaration verwendet
2. Funktion erwartet Unicode statt Ansi ... o.ä.

Ansonsten mehr Input!

Benedikt 9. Jan 2004 15:34

Re: DLL-Callback-Funktion PChar übergeben=>Daten kaputt
 
Ich denke mal das die Funktions-Deklaration richtig ist, aber wenn ich probiere das ganze zu Unicode zu konvertieren, dann hab ich ja einen PWideChar, wie bekomm ich den denn wieder zu PChar um das Ganze zu übergeben?
Und woran lässt sich erkennen dass das Plugin einen anderen Zeichensatz erwartet?
Ich habe mir in der DLL sofort nachdem der Wert vom Programm zurückkommt ihn mir ausgeben lassen.

MfG Benedikt

Assarbad 9. Jan 2004 16:04

Re: DLL-Callback-Funktion PChar übergeben=>Daten kaputt
 
Wie, du denkst die Funktionsdeklaration ist okay? Ist sie okay oder nicht? Hast du die C-Dekl da?

Benedikt 9. Jan 2004 20:02

Re: DLL-Callback-Funktion PChar übergeben=>Daten kaputt
 
Blöde Formulierung - die Funktions-Deklaration ist klar.
Ich habe das Beispiel-Plugin, also die DLL, mit zugehörigem Delphi-Code, und da wird die Funktion natürlich definiert.
Genauso wird die Funktion auf aufgerufen und so ist sie auch im Programm implementiert.
Es funktioniert ja auch alles wie gewünscht, die Funktion führt die korrekten Sachen aus, gibt Sie auch richtig zurück, nur bei einigen Zeichen, besonders so Sachen wie '001', da klappts halt wie beschrieben nicht.

MfG Benedikt


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:07 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