ichhab eine funktion
ExtractDateinameOhneExt('Hallowelt.dat');
Wenn ich diese Funktion direkt ins Programm schreibe funktioniert alles wie es soll.
Ich habe die Funktion jetzt in eine dll ausgelagert und egal was ich der Funktion übergebe
steht im Rückgabewert immer der Programmname des aufrufenden Programms.
ich gehe mal davon aus, dass ich das mit der DLL richtig gemacht habe

hier die DLL:
Code: Alles auswählen
library tools;
{$mode objfpc}{$H+}
{ you can add units after this }
uses
Classes, SysUtils, windows;
// extraiert den reinen Dateinamen ohne Pfad oder Erweiterung
function ExtractDateinameOhneExt(FileName: String) : String; stdcall;
var Ext : String;
x : Integer;
begin
Result := ExtractFileName(FileName);
Ext := ExtractFileExt(Result);
if Ext = '' then exit;
repeat
x := Pos('.', Result)
until x <> 0;
Delete(Result, x, Length(Result));
end;
exports ExtractDateinameOhneExt index 1 ;
begin
end.
der Aufruf im Prog ist folgender:
dateinameohne2:= ExtractDateinameOhneExt('Hallowelt.dat');
danke für eure Hilfe
Gruss KH