So, ich habe die Funktion jett noch etwas erweitert:
Code:
EXPORT int addstr(char *str1, char *str2, char *buffer, int lenbuffer)
{
if(strlen(str1) + strlen(str2) < lenbuffer)
{
return strlen(str1) + strlen(str2);
}
else
{
strcpy(buffer, str1);
strcat(buffer, str2);
return strlen(buffer);
}
}
Allerdings bekomme ich jetzt eine
AV beim ersten Aufruf:
Delphi-Quellcode:
@AddStr := GetProcAddress(hLib, 'addstr');
if Assigned(AddStr) then
begin
str1 := 'Hello ';
str2 := 'World';
len := AddStr(PChar(str1), PChar(str2), nil, 0);
GetMem(Buffer, len);
try
len := AddStr(PChar(str1), PChar(str2), Buffer, sizeof(Buffer));
ShowMessage(string(Buffer) + '[' + IntToStr(len) + ']');
finally
FreeMem(Buffer);
end;
end
It also auch noch nicht so ganz das ware.