Entwickler-Ecke
Dateizugriff - Fragen zu DLL Datei?
jackie05 - Sa 13.09.08 22:57
Titel: Fragen zu DLL Datei?
Hallo,
ich habe folgendes problem und zwar, möchte ich meine Delphi DLL Datei in eine andere Programmiersprache einbinden, das ist kein problem für micht, aber ich muss als Rückgabetyp PChar benutzen statt string.
Delphi-Quelltext
1: 2: 3: 4:
| function HelloWorld(): pchar; stdcall; export; begin result := 'Hello World!'; end; |
diese Funktion kann ich problemlos mit Blitz3D aufrufen, aber wenn ich funktionen schreibe und noch parameter übergebe:
Delphi-Quelltext
1: 2: 3: 4:
| function TestFunktion(MSG: string): pchar; stdcall; export; begin result := 'Hallo, '+MSG; end; |
dann bekomme ich eine fehlermeldung, wenn ich diese funktion versuche aufzurufen mit Blitz3D.
woran könnte der fehler eigentlich liegen?
Wenn ich funktionen schreibe, ohne weitere Parameter, dann funktioniert alles.
Ich bedanke mich schonmal im Voraus.
MfG
Moderiert von
Narses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am So 14.09.2008 um 00:03
Boldar - Sa 13.09.08 23:05
jackie05 hat folgendes geschrieben: |
...PChar benutzen statt string...
|
Du gibts die Antwort doch schon selbst^^
jackie05 - So 14.09.08 00:03
Ja, ich meine wenn ich funktionen aufrufen möchte die noch weitere Parameter haben, dann geht das nicht.
Ich bekomme in Blitz3D folgende fehlermeldung:
Memory access violation
Irgendwas mache ich falsch in der DLL Datei mit der funktion.
wie könnte ich das problem lösen?
MfG
Tilman - So 14.09.08 00:06
Naja dein Parameter ist ja gerade eben ein string und kein PChar, das wird es dann doch wohl sein :-)
jackie05 - So 14.09.08 01:30
Danke Dir.
Ich könnte das auch so machen:
Delphi-Quelltext
1: 2: 3: 4:
| function TestFunktion(MSG: string): pchar; stdcall; export; begin result := PChar('Hallo, '+MSG); end; |
Ich muss diesen Parameter als String definieren, da ich in meine anderen Funktion Stringverarbeitung mache und PChar ist da wohl schlecht dafür geeignet.
Irgendwie funktioniert das nicht, naja, ich werde es mal irgendwie versuchen.
MfG
Delete - So 14.09.08 02:56
Du kannst problemlos einen PChar nach String casten und umgekehrt. Allerdings wirst du noch ein paar Probleme bekommen. Wie es richtig geht kannst du hier nachlesen:
http://www.michael-puff.de/Artikel -> StringDLL.shtml
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!