Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C / C++

Выпуск № 186
от 01.02.2003, 20:00

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 559
Отправлено ответов: 1260
Активность: 225.4 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Ramzes
Статус: Доверительный
Общий рейтинг: 131.91
[Подробней >>]
Jadd
Статус: Профессиональный
Общий рейтинг: 143.95
[Подробней >>]
lunao
Статус: Начальный
Общий рейтинг: 116.66
[Подробней >>]
 
Dzik
Статус: Профессиональный
Общий рейтинг: 114.58
URL: Разработка игрушек
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 108.04
[Подробней >>]
Avl2k
Статус: Опытный
Общий рейтинг: 124.9
[Подробней >>]
 
Yuri Gordienko
Статус: Опытный
Общий рейтинг: 115.13
[Подробней >>]
PL
Статус: Доверительный
Общий рейтинг: 117.03
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 552. Хай чуваки. Ктонить может выложить исходник как вывести все рабочие группы в локальной сети? Мля я и... (ответов: 1)
Вопрос № 553. Приветствую вас, эксперты. Недавно начал изучать С, поэтому есть вопрос: Я выделил память для 10 бай... (ответов: 8)

Вопросов: 2, ответов: 9


 Вопрос № 552

Хай чуваки.
Ктонить может выложить исходник как вывести все рабочие группы в локальной сети? Мля я искал в МСДН вобще не то протсо я не понимаю эту технологию этих функций WNetOpenEnum
WNetEnumResource. Плизз помогите.



Вопрос отправлен: 27.01.2003, 23:26
Отправитель: Buggy

[Следующий вопрос >>] [Список вопросов]

Отвечает Ramzes

Здравствуйте, Buggy!
нет ничего проще. Если тебе нужно вывести толъко рабочие группы (Domain, workgroup), то делаешъ следующее
BOOL EnumDomains(LPNETRESOURCE pNet)
{
HANDLE hEnum = NULL;
DWORD dwError = WNetOpenEnum(RESOURCE_GLOBALNET);
if( dwError != NO_ERROR )
return FALSE;
do{
int count = 1, dwSize = 5;
NETRESOURCE* pBuffer = new NETRESOURCE[size];
size*= sizeof(NETRESOURCE);
dwError = WNetEnumResource(hEnum, &count, buffer, &size);
if( dwError != NO_ERROR && dwError != ERROR_NO_MORE_ITEMS)
return FALSE;
for( int i == 0; i < count; i++ )
{
if( buffer[i].dwDisplayType == RESOURCEDISPLAYTYPE_DOMAIN) // это domain или описателъ сети
{
// добавъ сюда свой код
}
EnuumDomains(Buffer[i]);
}
}while( dwError != ERROR_NO_MORE_ITEMS )
}

Ответ отправлен: 29.01.2003, 10:34
Отправитель: Ramzes


 Вопрос № 553

Приветствую вас, эксперты.
Недавно начал изучать С, поэтому есть вопрос:
Я выделил память для 10 байтов функцией malloc. Получил указатель
на первый байт.
Как можно инициировать эти десять байтов, например нулями.



Вопрос отправлен: 29.01.2003, 19:56
Отправитель: Rustem

[Следующий вопрос >>] [Список вопросов]

Отвечает Jadd

Доброе время суток, Rustem!
А очень просто. Для этого есть другая функция для выделения памяти: void *calloc( size_t num, size_t size ). Вот она-то и выделяет память и заполняет ее нулями, т.е. инициализирует нулями.

Ответ отправлен: 30.01.2003, 00:31
Отправитель: Jadd


Отвечает lunao

Здравствуйте, Rustem!
для этого существует функция memset(void *buffer,int c,int count)
buffer - область памяти
c - чем заполняем (напр. нулями)
count - сколько байт (10)
ЗЫ - пользуйся элементарным хелпом по стандартным функциям языка С

Ответ отправлен: 29.01.2003, 21:42
Отправитель: lunao


Отвечает Dzik

Доброе время суток, Rustem!
Можно работать как с массивом:
char *D=malloc(10);
D[0]=0;
D[1]=1;
D[9]=123;


Ответ отправлен: 29.01.2003, 20:25
Отправитель: Dzik


Отвечает vitya

Добрый день, Rustem!
memset(pArr/*что*/, 0 /*чем*/, 10 /*сколько*/);

Ответ отправлен: 30.01.2003, 08:52
Отправитель: vitya


Отвечает Ramzes

Здравствуйте, Rustem!
void* ptr = malloc(10);
memset(ptr, 0, 10);

Ответ отправлен: 30.01.2003, 10:16
Отправитель: Ramzes


Отвечает Avl2k

Приветствую Вас, Rustem!
Можно использовать, например, функцию memset из memory.h, т.е.
void main()
{
void* p = malloc( 10 );
memset( p, 0, 10 ); // заполняем нулями 10 байт
free( p );
}
C уважением, Avl2k.

Ответ отправлен: 30.01.2003, 10:21
Отправитель: Avl2k


Отвечает Yuri Gordienko

Здравствуйте, Rustem!
можно выделять через calloc, - в ней присутствует символ-заполнитель.


Ответ отправлен: 30.01.2003, 10:52
Отправитель: Yuri Gordienko


Отвечает PL

Добрый день, Rustem!
Смотри вот енти функции
-----
memset
ZeroMemory
memcpy
-----

Ответ отправлен: 30.01.2003, 11:33
Отправитель: PL



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (38)
C / C++ (28)
Perl (7)
Delphi (17)
Pascal (24)
Basic / VBA (12)
Java / JavaScript (12)
PHP (8)
MySQL / MSSQL (8)
Пользователю
Windows 95/98/Me (36)
Windows NT/2000/XP (31)
"Железо" (33)
Поиск информации (18)
Администратору
Windows NT/2000/XP (14)
Linux / Unix (13)
Юристу
Гражданское право (10)
Семейное право (6)
Трудовое право (5)
КоАП (4)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное