Форум: "Сети";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 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




Форум: "Сети";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.25;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.71 MB
Время: 0.022 c
3-80815           Jony                  2002-04-04 17:20  2002.04.25  
Некорректная работа DBNavigator.


1-80971           jin                   2002-04-12 11:30  2002.04.25  
Синтаксис языка Object Pascal


14-81060          bos                   2002-03-20 09:11  2002.04.25  
минимальные требования IB6?


14-81075          FELLINI               2002-03-21 06:52  2002.04.25  
Как свернуть рабочий стол


4-81116           Song                  2002-02-19 17:08  2002.04.25  
WM_POWERBROADCAST отловить жд. режим и обратно