![]() |
Delphi-Version: 5
DLL mit Rio erstellt + in D2006 nutzen
Danke für Eure Erfahrungen + Infos:
Ich möchte mit Rio eine DLL schreiben, die ich aus D2006 aufrufe. Da ich Strings übergebe - muss ich da Unicode-mäßig auf irgendwas aufpassen? D2006 benutzt ja ANSI-Strings + in Rio sind Strings Unicode. Danke für jede Info. |
AW: DLL mit Rio erstellt + in D2006 nutzen
Hallo,
ich würde direkt UnicodeString benutzen. Das sollt passen. |
AW: DLL mit Rio erstellt + in D2006 nutzen
Ich nutze XE4 und XE10 für div. DLLs die ich aus dem Hauptprogramm (D7 - das ohne XE) verwende und nutze für die Strings WideString, dann spare ich mir das Gedöns mit der BorlandmM.dll
|
AW: DLL mit Rio erstellt + in D2006 nutzen
Also in D7:
var X : String; Y : WideString; bzw UnicodeString; X nach Y konvertieren + an die DLL übergeben. DLL in Rio: var A : String; und A aus dem aufrufenden Programm übernehmen? |
AW: DLL mit Rio erstellt + in D2006 nutzen
Hallo,
nein, benutze überall den gleichen Datentyp. Also entweder WideString oder UnicodeString. Auch wenn String=WideString in D>=2009. Das macht das Lesen übersichtlicher. Ich würde es sogar so machen: D7 S: String; WS: WideString; S:= 'bla'; WS:= S; // sollte passen, oder halt wirklich konvertieren D-Rio S: String; WS: WideString; WS:= <- aus Dll S:= WS; |
AW: DLL mit Rio erstellt + in D2006 nutzen
Oder man macht es wie MS und schreibt die Funktionen in beiden Varianten. In der DLL:
Delphi-Quellcode:
Auf Programmseite schreibt man sich dann eine Importunit, die die zur Delphi-Version passende Funktion lädt:
function MyFuncA(SomeParam: PAnsiChar): DWORD; stdcall;
function MyFuncW(SomeParam: PWideChar): DWORD; stdcall; exports MyFuncA, MyFuncW;
Delphi-Quellcode:
Zu beachten: hier muss dann aber auch zwingend der Typalias PChar verwendet werden, sonst ist das alles für die Füße.
// Import der zum Delphi passenden Version
function MyFunc(SomeParam: PChar): DWORD; stdcall; external 'MyDLL.dll' name {$IFDEF UNICODE} 'MyFuncW' {$ELSE} 'MyFuncA' {$ENDIF}; |
AW: DLL mit Rio erstellt + in D2006 nutzen
Zitat:
Sie sind zwar zuweisungskompatibel, aber unterschiedlich implementiert. ![]() |
AW: DLL mit Rio erstellt + in D2006 nutzen
Zitat:
|
AW: DLL mit Rio erstellt + in D2006 nutzen
Danke erst mal für die Infos!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:14 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