Moin Madina,
bist Du sicher, dass Deine C-Funktion es tut?
Du deklarierst als Parameter Pointer auf Integer (Delhpi: PInteger), und vertauscht dann die Adressen, aber nicht die Werte (falls ich den Code richtig interpretiere, so C-fest bin ich nicht
)
Die Einbindung in Delphi müsste aber so aussehen:
Delphi-Quellcode:
//---------------------Delphi------------------
function Tausche(var a, b: Integer) cdecl; external 'Allg.dll' index 1;
// oder
function Tausche(a, b: PInteger) cdecl; external 'Allg.dll' index 1;
Procedure TfrmMain.sbTestClick(Sender: TObject);
begin
Tausche(a, b);
// oder
Tausche(@a,@b);
end;
Wenn Du var-Parameter übergibst, werden Pointer übergeben, oder Du übergibst gleich Pointer.