![]() |
DLL-interface Probleme in Delphi2009
Hallo
Ich nutze eine DLL mit einem Delphi-Interface. Unter Delphi7 habe ich keine Probleme gehabt, seit der direkten Umstellung auf Delphi 2009 klappt leider nichts mehr. Das Öffnen der Datei erfolgt mit dem Befehl:
Delphi-Quellcode:
wobei das Interface so aussieht:
file_id := H5Fopen(PChar(OpenDialog1.Files[0]), H5F_ACC_RDWR, H5P_DEFAULT);
Delphi-Quellcode:
Unter der Variabeln file_id erhalte ich unter Delphi2009 nur das Resultat -1, was einen Fehlschlag bedeutet.
function H5Fopen(filename: PChar; flags: Cardinal; access_plist: hid_t): hid_t; stdcall external 'hdf5dll3dr.dll' index 62;
Hängt dies mit der Unicode-Unterstützung zusammen? Falls ja, wie muss ich den Code abändern? |
Re: DLL-interface Probleme in Delphi2009
Speichere den wert zuerst als expliziten AnsiString, bevor du ihn der Funktion übergibst.
|
Re: DLL-interface Probleme in Delphi2009
PChar verweist in D2009 auf PWideChar. Also solange deine DLL die Daten im Ansi-Format erwartet, mußt du diese als PAnsiChar übergeben.
Delphi-Quellcode:
file_id := H5Fopen(PAnsiChar(AnsiString(OpenDialog1.Files[0])), H5F_ACC_RDWR, H5P_DEFAULT);
Delphi-Quellcode:
Besser wäre es natürlich, wenn die dll auch eine Wide-Funktion hätte, damit du die gesamten Vorteile von Unicode nutzen kannst.
function H5Fopen(filename: PAnsiChar; flags: Cardinal; access_plist: hid_t): hid_t; stdcall external 'hdf5dll3dr.dll' index 62;
|
Re: DLL-interface Probleme in Delphi2009
:-D Besten Dank! Nachdem ich den Rest des Interface und des Programms entsprechend angepasst habe, läuft das Programm wieder.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:04 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 by Thomas Breitkreuz