Bei mir ist LMSTR ein PWideChar
Daher macht "Inkompatible Typen: 'Char' und 'WideChar'" doch überhaupt keinen Sinn...
Übrigens:
Delphi-Quellcode:
TShareInfo502Array = Array of SHARE_INFO_502;
[...]
procedure TForm1.FormCreate(Sender: TObject);
var shareBuffer: TShareInfo502Array; dwRead, dwEntries: Cardinal; i: Integer;
begin
NetShareEnum(nil, 502, PByte(shareBuffer), MAX_PREFERRED_LENGTH, @dwRead, @dwEntries, nil);
for i := 0 to dwRead - 1 do begin
ShowMessage(WideCharToString(shareBuffer[i].shi502_netname));
end;
end;
liest alles perfekt aus...
Du hast scheinbar eine ältere Version der Header, denn in meiner (die ich eben gerade heruntergeladen habe) sind die beiden DWORDS-Parameter nicht mehr var, sondern PDWORD...
Es funktioniert auch, wenn ich die Namen so ausgebe:
ShowMessage(WideCharToString(shareBuffer[i].shi502_netname));