![]() |
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:
Das Gegenstück dazu in Delphi:
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); }
Delphi-Quellcode:
Der Text in Buffer wird jedoch gar nicht verändert (laut Delphi-Debugger).
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; Warum ändert er die Variable nicht? |
Re: C++ Dll soll Zeichenkette manipulieren
Ok hat sich erledigt... Habs grade hinbekommen, dabei stand der Tipp schon in der 3. Antwort :(
Code:
Jetzt geht es so wie ich das will :)
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); } Danke noch mal an euch ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:14 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