Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi function in dll, die string zurückgibt (https://www.delphipraxis.net/20398-function-dll-die-string-zurueckgibt.html)

Nicolai1234 17. Apr 2004 12:36


function in dll, die string zurückgibt
 
Wie kann ich eine dll schreiben, die als rückgabewert einen String hat? Ich habe gehört, da muss man irgendwas beachten... :wiejetzt:

d3g 17. Apr 2004 12:42

Re: function in dll, die string zurückgibt
 
Du musst wissen, dass ein String ein Pointer ist, und dass du die borlandmm.dll zusätzlich zu deiner DLL mitausliefern musst. Lass Strings also einfach ganz weg und benutze stattdessen PChar und array[] of Char.

Bernhard Geyer 17. Apr 2004 12:43

Re: function in dll, die string zurückgibt
 
Falls Du wirklich einen Delphi-String zurückgeben willst, so bist du auf beiden Seiten auf Delphi (C++-Builder) festgelegt.

Wenn Du eine neue DLL mit den Delphi-DLL-Experten erstellst, so bekommst Du den entsprechenden Hinweis kostenlos:
Zitat:

{ Wichtiger Hinweis zur DLL-Speicherverwaltung: ShareMem muß sich in der
ersten Unit der unit-Klausel der Bibliothek und des Projekts befinden (Projekt-
Quelltext anzeigen), falls die DLL Prozeduren oder Funktionen exportiert, die
Strings als Parameter oder Funktionsergebnisse übergeben. Das gilt für alle
Strings, die von oder an die DLL übergeben werden -- sogar für diejenigen, die
sich in Records und Klassen befinden. Sharemem ist die Schnittstellen-Unit zur
Verwaltungs-DLL für gemeinsame Speicherzugriffe, BORLNDMM.DLL.
Um die Verwendung von BORLNDMM.DLL zu vermeiden, können Sie String-
Informationen als PChar- oder ShortString-Parameter übergeben. }
Willst Du auch mit C/C++ oder VB auf deine DLL zugreifen, so darfst Du nur PChar/PWideChars verwenden und mußt klare regeln bezüglich speicherfreigabe aufstellen (Soll Platz schon von aufrufer bereitgestellt werden od wird er von der DLL angefordert...

Nicolai1234 17. Apr 2004 12:44

Re: function in dll, die string zurückgibt
 
Wie kann ich das machen?

Ich habe folgende function:

Delphi-Quellcode:
function rueckgabe(s:string):string;
Es wird ein string übergeben und es kommt ein string zurück! Wie muss ich es ändern?

Nicolai1234 17. Apr 2004 12:52

Re: function in dll, die string zurückgibt
 
wenn ich string durch pchar ersetze kommt folgende fehlermeldung:
[Fehler] texterkennung.pas(66): Bei der vorherigen Deklaration von rueckgabe wurde die Direktive 'overload' nicht angegeben

Was heißt das???

Meflin 17. Apr 2004 12:55

Re: function in dll, die string zurückgibt
 
vermutlich dass du hinter den functionblabla;overload; hinbschreiben musst ;-)

Pseudemys Nelsoni 17. Apr 2004 12:58

Re: function in dll, die string zurückgibt
 
wenn du string sowieso nicht benutzt, dann lösch die funktion vor deiner neuen, wahrscheinlich hast du 2 functionen mit gleichem namen deklariert.

Nicolai1234 17. Apr 2004 13:05

Re: function in dll, die string zurückgibt
 
Geht jetzt, danke.

Gibt es eine Function wie z.B PCHARrtoSTR oder so ähnlich??

Meflin 17. Apr 2004 13:06

Re: function in dll, die string zurückgibt
 
meinst du vielleicht PChar, die sollte einen char in einen string umwandeln oder umgekehrt!?

Pseudemys Nelsoni 17. Apr 2004 13:08

Re: function in dll, die string zurückgibt
 
mit dem typcasting muss das gehen : string(deinpchar)


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:36 Uhr.
Seite 1 von 3  1 23      

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