Форум: "Сети";
Текущий архив: 2002.04.25;
Скачать: [xml.tar.bz2];
Внизпроблемка с NetServerEnum Найти похожие ветки
← →
AlexRush (2002-02-14 20:21) [0]Есть такой код:
TYPE
_SERVER_INFO_101 = record
sv101_platform_id:DWORD;
sv101_name:PWideChar;
sv101_version_major:DWORD;
sv101_version_minor:DWORD;
sv101_type:DWORD;
sv101_comment:PWideChar;
end;
P_SERVER_INFO_101 = ^_SERVER_INFO_101;
_SERVER_INFO_101ARRAY = array of _SERVER_INFO_101;
.......
CONST
SV_TYPE_WORKSTATION = $00000001;
........
function NetServerEnum(
servername:PWideChar;
level:DWORD;
bufptr:PBYTE;
prefmaxlen:DWORD;
entriesread:LPDWORD;
totalentries:LPDWORD;
servertype:DWORD;
domain:PWideChar;
resume_handle:LPDWORD
):NET_API_STATUS;stdcall;
external NetApi32 name "NetServerEnum";
........
procedure TForm1.FormCreate(Sender: TObject);
var pwc:PWideChar;
e,te,eid:DWORD;
i:integer;
data:_SERVER_INFO_101ARRAY;
begin
SetLength(data,1024);
ZeroMemory(@data[0],length(data)*sizeof(data[0]));
for i:=0 to length(data)-1 do
begin
GetMem(data[i].sv101_name,100);
StringToWideChar("test NAME value",data[i].sv101_name,100);
GetMem(data[i].sv101_comment,100);
StringToWideChar("test COMENT value",data[i].sv101_comment,100);
end;
eid:=NetServerEnum(nil,
101,
@data[0],
length(data)*sizeof(data[0]),
@e,
@te,
SV_TYPE_WORKSTATION,
nil,
0);
if eid=0
then begin
if te>0
then begin
GetMem(pwc,100);
StringToWideChar("NEXT SERVER:",pwc,100);
for i:=0 to e-1 do
MessageBoxW(0,data[i].sv101_name,pwc,0);
ShowMessage("Count: "+IntToStr(i));
Dispose(pwc);
end;
end
else MessageBoxA(0,PChar(IntToStr(eid)),PChar("ERROR CODE:"),$10);
for i:=0 to length(data)-1 do
begin
Dispose(data[i].sv101_name);
Dispose(data[i].sv101_comment);
end;
SetLength(data,0);
end;
NetServerEnum возвращает $0 - т.е. все нормальнльно
te,e - колво рабочих станций в моем сегменте
Вот только имена sv101_name не устанавливаются.
Подскажите, в чем трабл.
← →
VuDZ (2002-02-14 22:14) [1]посмотри в дебагере значение _name, может что ни так, потому что код выглядит верно, насколько мои зная делфи позволяют судить об этом...
или без лишних выкрутасов попробуй выводить всё это через OutputDebugStringW
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2002.04.25;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c