Hallo,
die beiden Beispiele gehen leider nicht.
Code:
// das sind die Funktionen, deren Adresse per GetProcAddress
// zugeordnet werden
var
export_ShowParserErrorText: procedure( m: Pchar) cdecl;
export_WriteTextToConsole : procedure( m: Pchar) cdecl;
// dies ist die Prozedur, die in der
DLL aufgerufen werden soll
procedure WriteTextToConsole(m: PChar);
begin
ShowMessage(PChar(m));
end;
Code:
// und das ist der C-Code in der
DLL:
char * buffer = (char*) malloc(1024);
strcpy( buffer, "report");
ShowMessage( buffer ); // <-- wird angezeigt
WriteTextToConsole( buffer ); // wird nicht angezeigt
WriteTextToControls wird in Delphi aufgerufen, aber der buffer ('report') wird nicht angezeigt.
Es kommt auch keine Fehlermeldung.