Ich bin eben auf die glorreiche Idee gekommen, die
DLL dynamisch einzubinden:
Delphi-Quellcode:
function Dyn_ConvertSidToStringSid(SID: PSID; var strSID: LPSTR): boolean;
type
DllReg = function(SID: PSID; var StringSid: LPSTR): Boolean; stdcall;
var
hDll: THandle;
dr: DllReg;
begin
result := false;
hDll := LoadLibrary('ADVAPI32');
if hDll <> 0 then
begin
@dr := GetProcAddress(hDll, 'ConvertSidToStringSid');
if assigned(dr) then
begin
result := dr(SID, strSID);
end;
end;
end;
Das Problem ist nun, dass "result := dr(SID, strSID);" nie ausgeführt wird. Folglich ist assigned(dr) = false. (Natürlich auf meinem XP System getestet)