Hallo,
ich habe die Sache auf eine andere Art gelöst, ist aber nicht so schön
Code:
function InterlockedCompareExchangePtr(var Target : Pointer; NewValue : Ponter; Comperad . Pointer): Pointer;
var
TV, NV, CO : Longint;
begin
TV := Longint(Target);
NV := Longint(NewValue);
CO := Longint(Comperad);
Result := Pointer(InterlockedCompareExchange(TV, NV, CO));
end;
Der Typecast musste sein, da der Compiler bei einem
Code:
InterlockedCompareExchange(Longint(Target), Longint(NewValue), Longint(Comperad))
das der Variablen und keine Konstanten haben möchte.
Mal schauen ob die Lösung auch die Lösung ist.
Danke