![]() |
Re: Problem mit dll und pchar
Meine dll wird nur von meinem Prgramm sprich Delphi verwendet und es sind weniger als 255 Zeichen!
Also mit shortstring wäre das kein Problem? Dann kann ich in der dll schreiben:
Delphi-Quellcode:
und in meinem Programm:
MeinShortString := shortstring(MeinString);
Delphi-Quellcode:
So kann ich es doch machen oder?
MeinString := string(MeinShortString);
|
Re: Problem mit dll und pchar
In der Dll:
Delphi-Quellcode:
In Prog z.B.:
function GetDataName(pStr : PChar; iStrLen : Integer) : Integer;
var sDataName : String; begin sDataName := 'Hallo Welt!'; // Irgentein Text Result := Min(Length(sDataName), iStrLen - 1); // Passt die Zeichenkette in den Speicher ? // wenn nicht kopiere was geht, sonst kopiere Text // + setzen des Rückgabewertes der tatsächlich kopierten Zeichen StrLCopy(pStr, PChar(sDataName), Result); // Sicheres kopieren in den Buffer end;
Delphi-Quellcode:
Buffer = Dynamischer Speicher
SetLength(sStr, 1024); // Erstelle Buffer für 1024 Zeichen
SetLength(sStr, GetDataName( PChar(sStr), // Übergib Buffer 1024) // Sage wieviel Byte der Buffer hat ); // Lösche alle Überflüssigen Bytes, die Hintendranhängen |
Re: Problem mit dll und pchar
Zitat:
In der Dll:
Delphi-Quellcode:
Deinen Prog.
MeinShortString := MeinString; // Achtung alles was mehr als 255 Zeichen sind, wird abgeschnitten
Delphi-Quellcode:
MeinString := MeinShortString;
|
Re: Problem mit dll und pchar
Also einfach einander zuweisen. Habe ich verstanden!!!
Und diesen Teil muss ich gar nicht weiter verwenden. Zitat:
|
Re: Problem mit dll und pchar
Das kompliziertere Bsp gilt für Zeichenketten die mehr als 255 Zeichen enthalten. Hat also auch seine Berechtigung.
Du musst entscheiden was du machen möchtest. |
Re: Problem mit dll und pchar
Ic habe mich jetzt für shortstring entschieden!
Jetzt habe ich in der dll folgende function:
Delphi-Quellcode:
In der letzten Zeile der function steht:
function rueckgabe(herkunft:shortstring):shortstring;
Delphi-Quellcode:
An dieser Zeile entsteht ein fehler. Warum?
result := ergebnis; //ergebnis ist ein string (bestehend aus 5 Zeichen)
|
Re: Problem mit dll und pchar
Welcher Fehler?
|
Re: Problem mit dll und pchar
Folgende Fehlermeldung tritt dann bei mir auch:
Zitat:
|
Re: Problem mit dll und pchar
Bei mir gibt es keine Zugriffsverletzung:
Prog:
Delphi-Quellcode:
In der Dll:
function Hallo(tst : ShortString) : ShortString;
external 'Project2.dll'; procedure TForm1.Button3Click(Sender: TObject); begin ShowMessage(Hallo('Hallo')); end;
Delphi-Quellcode:
function Hallo(tst : ShortString) : ShortString; export;
begin Result := tst + ' Welt'; end; exports Hallo; |
Re: Problem mit dll und pchar
du verwendest ja uch keinen string! Ich habe ja in der dll einen string, den ich dann zu einem shortstring mache und dabei tritt der Fehler auf!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:47 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