Q> Можно ли в 95
использовать функции Net*() (NetFileEnum и т.п.)?
A> Можно.
Вариант 1: Делаем по порядку -
п.1 - Покупаем качественный бубен.
п.2 - Периодически постукивая бубном
и обходя нижеприведенные
грабли пишем прогу.
В Win95 вы должны включать файл svrapi.h,а
не lm.h как в NT.
Также нужно использовать svrapi.lib и
svrapi.dll,а не netapi32.lib и
netapi32.dll.Если хочется поддерживать
обе платформы - прийдется dll
грузить динамически.
Внимание: в 95 Net*() функции имеют
другую семантику по сравнению с NT.
Строки должны быть в ANSI,не все
уровни доступны.Возвращаемые
структуры
различны.Управление памятью
различно.
Для NT требуется адрес указателя на
буфер,95-му надо указатель на буфер.
// Windows NT
BYTE *buf;
DWORD prefmaxlen;
// ...
buf = NULL;
prefmaxlen = 8192; // or whatever
result = NetSomeFunction( ..., &buf, prefmaxlen, ... );
// process buffer ...
NetApiBufferFree( buf );
// Windows 9X
BYTE *buf;
WORD cbBuffer;
// ...
cbBuffer = 8192; // or whatever
buf = (BYTE *) malloc( cbBuffer );
result = NetSomeFunction( ..., buf, cbBuffer ... );
// process buffer ...
free( buf );
Крайне рекомендуется посмотреть
svrapi.h файл.
PS: Если ничего не получается - то или
эта функция вообще отсутствует
в srvapi.h и dll(неплохо бы сначала
посмотреть), или мало трясли бубном.
PPS: Говорят еще хорошо помогает
дудочка из малой берцовой кости
девственницы - духов хорошо
ублажает ;-)
Вариант 2:
From: "Michael L. Stepuchev"
<stepuchev@prognoz.ru>
Для Windows 95 есть что-то типа Administration
Kit (лежит в WinNT Resource
Kit). Вот там есть 2 dll-ины (radmin32.dll &
rlocal32.dll), в
которых описаны все или почти все
функции NT-евой netapi32.dll. Надо
юзать эти dll-ины.