AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Delphi DLL String übergeben
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi DLL String übergeben

Ein Thema von DelTurbo · begonnen am 25. Mär 2024 · letzter Beitrag vom 28. Mär 2024
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#12

AW: Delphi DLL String übergeben

  Alt 28. Mär 2024, 09:54
0 ist definitiv falsch

PWideChar(@Antwort[1]) oder besser PWideChar(@Antwort[Low(string)]) (für die kurze Era wo das mal im Mobilen-Delphi ausprobiert wurde)
oder einfach nur direkt PWideChar(Antwort) , denn Ersteres knallt dir bei einem leeren String (Length=0) gnadenlos eine Exception entgegen.
https://docwiki.embarcadero.com/RADS...rings_(Delphi)



Für AnsiString's und UnicodeString/String müsste ShareMem verwendet werden, oder eben als PChar übergeben.

Wenn keine #0 im PChar/PWideChar oder PAnsiChar vorkommen, dann braucht man keine Länge einzeln zu übergeben.
MSDN-Library durchsuchenStrLen

Für WideString geht es geht es auch direkt, da es nicht den DelphiMM benutzt, sondern den MemoryManager vom OLE32
und intern ist es eigentlich ein Bei Google suchenBSTR, wofür automatisch die API um MSDN-Library durchsuchenSysAllocString/SysFreeString verwendet wird, welche auch C++ und Co. nutzen können.
Außerdem nutzt es somit auch eine Art von ShareMem (nur halt nicht das vom Delphi), weswegen es keine Probleme mit DLLs und COM-Interfaces gibt.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (28. Mär 2024 um 09:59 Uhr)
  Mit Zitat antworten Zitat
 


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 17:42 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