Zitat von
thabaker:
Zitat:
Außerdem mein üblicher Hinweis bei dem Thema: WideString lässt sich ohne Tricksereien zwischen Echse und
DLL (und auch anderen Sprachen, weil normaler OleString aka BSTR)
ist das tatsächlich so? das wäre ja toll, weil widestrings eh immer mehr Verbreitung finden.
Ja klar.
WideString ist etwas langsamer als AnsiString, da es kein nativer Delphi typ ist (keine Referenzzählung, und auch noch
Unicode...).
Sollte aber nicht viel ausmachen. PChars sind nicht nur heikel, weil man vergessen könnte den String vorher explizit zu kopieren, sie machen deine Anwendung auch viel anfälliger für Buffer overflows.
Egal ob unbeabsichtigt, oder als Sicherheitslücke, die andere gezielt ausnutzen könnten...
Und wie gesagt, der Code, der mit PCHars arbeitet ist einfach nur hässlich.
PChars innerhalb von optimierten Funktionen zu nehmen um Kopiererei zu sparen ist eine Sache (und das macht auch Sinn!), aber sich sinnlos auf diese mittelalterliche Art unnötige Bufferflows oder Umwege anzutun kann ich nicht ganz nachvollziehen...
Wenn du weißt, dass die
DLL von dir kommt, dann wären auch AnsiString und FastMM ein schöne Lösung.