Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   C++ Dll soll Zeichenkette manipulieren (https://www.delphipraxis.net/128565-c-dll-soll-zeichenkette-manipulieren.html)

rey003 7. Feb 2009 17:51

Re: C++ Dll soll Zeichenkette manipulieren
 
So nach einer Woche krank im Bett rumliegen meld ich mich mal wieder zu Wort.
Zunächst erstmal ein Danke für eure Bemühungen.

Ich poste einfach mal meinen derzeitigen Quelltext
DLL:
Code:
extern "C" __declspec(dllexport) int String_aendern(char * sstring);

...

int String_aendern(char * sstring)

   MessageBox(0,LPCSTR(sstring),_T("M1"),0); //bringt: Alter Text

   char newtxt[] = "Neuer Text";
   sstring = newtxt;
   MessageBox(0,LPCSTR(sstring),_T("M2"),0); //bringt: Neuer Text

   return strlen(sstring);
}
Das Gegenstück dazu in Delphi:
Delphi-Quellcode:
function String_aendern(sstring: PChar): Integer; cdecl; external 'DLL.dll';

procedure TForm1.Button1Click(Sender: TObject);
var
  len: integer;
  buffer: array [0..30] of char;
begin
  buffer:= 'Alter Text';

  len:=String_aendern(@buffer); //in dem Fall 10
  showmessage(StrPas(buffer)); //bringt: Alter Text
end;
Der Text in Buffer wird jedoch gar nicht verändert (laut Delphi-Debugger).
Warum ändert er die Variable nicht?

rey003 7. Feb 2009 17:59

Re: C++ Dll soll Zeichenkette manipulieren
 
Ok hat sich erledigt... Habs grade hinbekommen, dabei stand der Tipp schon in der 3. Antwort :(
Code:
extern "C" __declspec(dllexport) int String_aendern(char * sstring);

...

int String_aendern(char * sstring)
{
   MessageBox(0,LPCSTR(sstring),_T("M1"),0); //bringt: Alter Text

   char newtxt[30] = "Neuer Text";
   strcpy(sstring, newtxt);
   MessageBox(0,LPCSTR(sstring),_T("M2"),0); //bringt: Neuer Text

   return strlen(sstring);
}
Jetzt geht es so wie ich das will :)
Danke noch mal an euch ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:14 Uhr.
Seite 2 von 2     12   

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