AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Tutorials [Artikel] Rückgabe von Strings aus DLLs
Tutorial durchsuchen
Ansicht
Themen-Optionen

[Artikel] Rückgabe von Strings aus DLLs

Ein Tutorial von Luckie · begonnen am 6. Okt 2006 · letzter Beitrag vom 7. Okt 2006
Antwort Antwort
Benutzerbild von Luckie
Luckie
Registriert seit: 29. Mai 2002
Es scheint immer wider Probleme zugeben, wenn es darum geht mit Funktionen in DLLs Strings zurückzugeben. Diesr Thread PChar schneidet letztes zeichen ab hat mich dann dazu bewegt, dies mal etwas ausführlicher in einem kurzen Artikel oder kleinen Tutorial zu erklären wie man es machen kann.

Artikel: Rückgabe von Strings aus DLLs

Ich hoffe, ich habe damit zum allgemeinen Unverständnis beigetragen.
Angehängte Dateien
Dateityp: pdf string_dll_185.pdf (128,6 KB, 74x aufgerufen)
Ein Teil meines Codes würde euch verunsichern.
 
Benutzerbild von Bernhard Geyer
Bernhard Geyer

 
Delphi 10.4 Sydney
 
#2
  Alt 7. Okt 2006, 05:47
Evtl. könntest Du noch einen kleinen Hinweis darauf geben das mit alternativen Speichermanagern wie FastMM4 man auch String zwischen DLL's und Exe austauschen kann ohne ShareMem.DLL zu benötigen.
  Mit Zitat antworten Zitat
EWeiss
 
#3
  Alt 7. Okt 2006, 09:56
Habe gelesen man sollte generell darauf verzichten Strings aus einer DLL
zu exportieren da probleme mit anderen Programmiersprachen nicht ausgeschlossen
werden können.
C++ muckt rum beim exportieren von Strings .. besser PChar benutzen.

gruß
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

 
Delphi 2006 Professional
 
#4
  Alt 7. Okt 2006, 10:12
Zitat von Bernhard Geyer:
Evtl. könntest Du noch einen kleinen Hinweis darauf geben das mit alternativen Speichermanagern wie FastMM4 man auch String zwischen DLL's und Exe austauschen kann ohne ShareMem.DLL zu benötigen.
Oh. Geht das? Das wusste ich gar nicht. Dan ist die DLL aber nicht mehr kompatible zu Programmiersprachen, die keine Strings kennen, wie C/C++ zum Beispiel oder deren String-Datentyp anders aufgebaut ist.
Michael
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#5
  Alt 7. Okt 2006, 16:59
Man kann auch Strings an C übergeben, die Definition des Delphi-Strings läßt sich auch da implementieren und wenn man unter C nur lesen will, dann kann man einen Delphi-String dort auch einfach als PChar ansehen, aus diesem Grund zeigt der interne Pointer ja nicht auf den Strukturanfang, sondern auf die Stringdaten und am Ende wurde extra ein #0 angefügt.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

 
Delphi 10.4 Sydney
 
#6
  Alt 7. Okt 2006, 19:28
Zitat von Luckie:
Zitat von Bernhard Geyer:
Evtl. könntest Du noch einen kleinen Hinweis darauf geben das mit alternativen Speichermanagern wie FastMM4 man auch String zwischen DLL's und Exe austauschen kann ohne ShareMem.DLL zu benötigen.
Oh. Geht das? Das wusste ich gar nicht.
Was, Du weist etwas nicht

Zitat von Luckie:
Dan ist die DLL aber nicht mehr kompatible zu Programmiersprachen, die keine Strings kennen, wie C/C++ zum Beispiel oder deren String-Datentyp anders aufgebaut ist.
Es soll ja auch nur mit der gleichen Intention oder im gleichen Abschnitt wie die ShareMem-Lösung aufgeführt werden. Diese ist ja auch Delphi/C++-Builder beschränkti
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz