AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi DLL-Callback-Funktion PChar übergeben=>Daten kaputt
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von Benedikt · begonnen am 9. Jan 2004 · letzter Beitrag vom 9. Jan 2004
Antwort Antwort
Benedikt
(Gast)

n/a Beiträge
 
#1

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

  Alt 9. Jan 2004, 14:31
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
  Mit Zitat antworten Zitat
Assarbad
(Gast)

n/a Beiträge
 
#2

Re: DLL-Callback-Funktion PChar übergeben=>Daten kaputt

  Alt 9. Jan 2004, 14:48
2 Möglichkeiten:
1. Falsche Funktionsdeklaration verwendet
2. Funktion erwartet Unicode statt Ansi ... o.ä.

Ansonsten mehr Input!
  Mit Zitat antworten Zitat
Benedikt
(Gast)

n/a Beiträge
 
#3

Re: DLL-Callback-Funktion PChar übergeben=>Daten kaputt

  Alt 9. Jan 2004, 15:34
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
  Mit Zitat antworten Zitat
Assarbad
(Gast)

n/a Beiträge
 
#4

Re: DLL-Callback-Funktion PChar übergeben=>Daten kaputt

  Alt 9. Jan 2004, 16:04
Wie, du denkst die Funktionsdeklaration ist okay? Ist sie okay oder nicht? Hast du die C-Dekl da?
  Mit Zitat antworten Zitat
Benedikt
(Gast)

n/a Beiträge
 
#5

Re: DLL-Callback-Funktion PChar übergeben=>Daten kaputt

  Alt 9. Jan 2004, 20:02
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz