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?
Daniel S.