![]() |
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:
|
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.
|
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:
|
Re: function in dll, die string zurückgibt
Wie kann ich das machen?
Ich habe folgende function:
Delphi-Quellcode:
Es wird ein string übergeben und es kommt ein string zurück! Wie muss ich es ändern?
function rueckgabe(s:string):string;
|
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??? |
Re: function in dll, die string zurückgibt
vermutlich dass du hinter den functionblabla;overload; hinbschreiben musst ;-)
|
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.
|
Re: function in dll, die string zurückgibt
Geht jetzt, danke.
Gibt es eine Function wie z.B PCHARrtoSTR oder so ähnlich?? |
Re: function in dll, die string zurückgibt
meinst du vielleicht PChar, die sollte einen char in einen string umwandeln oder umgekehrt!?
|
Re: function in dll, die string zurückgibt
mit dem typcasting muss das gehen : string(deinpchar)
|
Re: function in dll, die string zurückgibt
In meinem Buch steht folgendes:
Zitat:
Edit1.text := p |
Re: function in dll, die string zurückgibt
Delphi-Quellcode:
Edit1.text := string(p);
|
Re: function in dll, die string zurückgibt
Danke, jetzt gehts!
Innerhalb einer dll kann ich doch mit strings arbeiten, oder? (wenn sie nicht übergeben werden) |
Re: function in dll, die string zurückgibt
Ja! :mrgreen:
|
Re: function in dll, die string zurückgibt
Jetzt funktioniert alles, aber es kommt diese Fehlermeldung:
*Link entfernt* Was hat das zu bedeuten? |
Re: function in dll, die string zurückgibt
Das Einfachste ist, wenn du ShortString's verwendest, sobald du über Programm-/DLL-Grenzen hinweg willst, denn diese arbeiten anders, als String's/AnsiString's (ohne Pointer).
Allerdings kann so ein ShortString maximal 255 Zeichen lang sein. |
Re: function in dll, die string zurückgibt
Und was hat die Fehlermeldung zu bedeuten?
|
Re: function in dll, die string zurückgibt
Eine DLL ist kein eigenständiges Programm, es muß also ein anderes Programm angegeben werden (unter Start > Parameter > Host-Anwendung), welches die DLL dann ausführt.
Oder du öffnest ein anders Projekt, wo die DLL verwendet wird... |
Re: function in dll, die string zurückgibt
Danke jetzt geht alles! :love:
|
Re: function in dll, die string zurückgibt
Wenn Du eine DLL debuggen willst, muß du festlegen welche Exe-Anwendung diese DLL verwenden soll. Dazu gibst du über den Menüpunkt "Start/parameter" die Host-Anwendung (deine Exe) an. Auch solltest Du unter Projekt/Optionen Verzeichnis/Bedingungen festlegen, das die DLL in das Verzeichnis der Exe kopiert wird, damit die Exe immer die aktuelle Version der DLL verwendet.
:oops: Wenn man per email benachrichtigt wird sollte auch nachschauen ob nicht jemand schneller war 8) |
Re: function in dll, die string zurückgibt
Zitat:
|
Re: function in dll, die string zurückgibt
Moin!
Du versuchst das DLL Projekt zu starten anstatt deiner Anwendung. Schau mal unter Ansicht in die Projektverwaltung und mach mal ein Doppelklick auf deiner Anwendung anstatt der DLL und dann führe es aus... MfG Muetze1 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:52 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-2025 by Thomas Breitkreuz