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

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


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


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

Выпуск № 257
от 16.05.2003, 11:10

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


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

BOLT
Статус: Доверительный
Общий рейтинг: 162.16
[Подробней >>]
Avl2k
Статус: Опытный
Общий рейтинг: 125.05
[Подробней >>]
akul
Статус: Опытный
Общий рейтинг: 111.22
Телефон: +6019-6416245
[Подробней >>]
 
Knignick
Статус: Доверительный
Общий рейтинг: 112.28
[Подробней >>]
Ramzes
Статус: Опытный
Общий рейтинг: 127.98
URL: Microsoft homepage
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 108.03
[Подробней >>]
 
Yuri Gordienko
Статус: Опытный
Общий рейтинг: 115.6
[Подробней >>]
xiron
Статус: Доверительный
Общий рейтинг: 112.56
[Подробней >>]
baldr
Статус: Профессиональный
Общий рейтинг: 112.5
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]


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

Вопрос № 760. Здравствуйте, эксперты ! Я с codeguru.com скачал хороший класс BCMenu, чтоб меню с битмапами было. Т... (ответов: 2)
Вопрос № 761. Привет, эксперты! У меня такой вопрос- можно- ли из драйвера вызывать функции DLL и если да, то как... (ответов: 3)
Вопрос № 762. Здесь alexneta задавал(а) вопрос на счёт перегрузки [] Так вот, те ответы, которые были даны свидете... (ответов: 5)
Вопрос № 763. Здравствуте ув. эксперты? Возникла проблема следующего плана. Нужно найти на диске все файлы с расши... (ответов: 6)

Вопросов: 4, ответов: 16


 Вопрос № 760

Здравствуйте, эксперты !
Я с codeguru.com скачал хороший класс BCMenu,
чтоб меню с битмапами было. Только вот проблема :
когда делаю в меню второй уровень, первый становится
узкой полоской, уже чем остальные. Хотя в примере
у автора все работает. Что посоветуйте ?
Использую VC++ c MFC.



Вопрос отправлен: 12.05.2003, 17:37
Отправитель: IceWINteR (brothers@atnet.ru)

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

Отвечает BOLT

Здравствуйте, IceWINteR!
Смотри внимательнее пример :)

Ответ отправлен: 12.05.2003, 21:39
Отправитель: BOLT


Отвечает Avl2k

Здравствуйте, IceWINteR!
Видимо, какие-то сложности возники с функцией OnMeasureItem. А Вы правильно выполнили процедуру добавления этого класса в свой проект (не забыли перекрыть WM_MEASUREITEM, WM_MENUCHAR, WM_INITMENUPOPUP?).
С уважением, Avl2k.

Ответ отправлен: 14.05.2003, 14:04
Отправитель: Avl2k


 Вопрос № 761

Привет, эксперты!
У меня такой вопрос- можно- ли из драйвера вызывать функции DLL и если да, то как. И если у кого либо есть нормальная (теория/практика) инфа (желательно, но не обязательно на русском) по WDM то киньте в ящик или линком поделитесь.
Заранее спасибо!



Вопрос отправлен: 12.05.2003, 19:18
Отправитель: Morgion (morgion@yandex.ru)

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

Отвечает akul

Приветствую Вас, Morgion!
Ну для начала скажи что за драйвер, но в общем то нельзя. Dll API предназначено для User Mode, а WDM дрова для Kernel Mode. А нафига так извращаться то? Можно из dll обращаться к драйверу, а вот наоборот...

Ответ отправлен: 13.05.2003, 10:41
Отправитель: akul


Отвечает Knignick

Здравствуйте, Morgion!
Можно, почему нет? Подгружаешь DLL-ку использую LoadLibrary и достаешь нужную фушкцию через GetProcAddress.


Ответ отправлен: 12.05.2003, 23:59
Отправитель: Knignick


Отвечает Ramzes

Приветствую Вас, Morgion!
А разве LoadLibrary не работает ? (Хотя не знаю, не пробовал)
А насчет книги скачай эту, неплохая
http://www.proglib.ru/books/prog-wdm.zip

Ответ отправлен: 13.05.2003, 14:12
Отправитель: Ramzes


 Вопрос № 762

Здесь alexneta задавал(а) вопрос на счёт перегрузки []
Так вот, те ответы, которые были даны свидетельстуют о вопиющей некомпитентности "експертов" (с) Yuri Gordienko
Ответ:
Гуру рекомендуют писать
class Index
{
public:
int i1,i2;
Index(int i1, int i2):i1(i1), i2(i2){}
...
};
...
int value = array[Index(i1,i2)];
Рекомендую прочитать главу 8 в книге "С++" Джефа Элджера.
Там подробно описываются фокусы с перегрузкой []
"Експерты" (с) Yuri Gordienko, которые эту книгу не перечитывают раз в год - НЕ ЭКСПЕРТЫ!!!
ПОЗОР ЭКСПЕРТАМ РАССЫЛКИ С++!!!
ДОЛОЙ РАССЫЛКУ!!!
Я УЖЕ ОТПИСАЛСЯ ОТ ВАШЕЙ ГРЁБАНОЙ РАССЫЛКИ, "експерты"!!!



Вопрос отправлен: 12.05.2003, 20:21
Отправитель: Antonio (antonio@vorona.by)

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

Отвечает vitya

Здравствуйте, Antonio!
Я не понимаю, чем тебе не нравится его ответ?

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


Отвечает Yuri Gordienko

Здравствуйте, Antonio!
Да Вы, видать, батенька, с головой не дружите. Т.к. у Элджера аналогичный(тому что я написал) способ и рассматривается.
З.Ы. Я так сожалею, что Вы отписались... Наверное ночь спать не буду...


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


Отвечает Avl2k

Добрый день, Antonio!
Прежде чем позорить экспертов и советовать им перечитать данную книгу, неплохо бы перечитать ее самому, а также понять, что именно там написано. Никаких особых "фокусов" с оператором [] там нет. Видимо особое изумление ув. Antonio вызвали такие формы записи:
1. Foo*& operator[](int);
2. const String& operator[](const String&);
3. struct Index { Index(int, int); }
Foo& operator[] (Index);
У тех, кто читал Страуструпа, проблем с этим нет.
Однако напомню, что вопрос был о возможности записи вида Arr[5,10]. А доступ к элементу вида Arr[Index(5, 10)] ничем не лучше (и причем длиннее), чем Arr(5, 10), предложенного одним из экспертов. При большом желании можно писать и так:
#include
#include
#include
using namespace std;
struct X
{
X(int i1): m_vec(1,i1) {}
X& operator , (int i)
{ m_vec.push_back( i ); return *this; }
vector m_vec;
};
class Y
{
public:
int operator[](const X& i)
{
copy(i.m_vec.begin(), i.m_vec.end(), ostream_iterator(cout, " "));
cout << endl;
return 0;
}
};
int main(int argc, char* argv[])
{
Y y1;
y1[X(3),9];
y1[X(1),2,3];
return 0;
}
Так что,
ПОЗОР ТЕМ, КТО НЕ ПЕРЕЧИТЫВАЕТ НА НОЧЬ ВСЕ ТРИ ИЗДАНИЯ СТРАУСТРУПА!!!
ПОЗОР ТЕМ, КТО С УТРА НЕ ШТУДИРУЕТ СТАНДАРТ ISO/IEC 14882!!!
С уважением, Avl2k.
P.S. Извините, наболело :)))


Ответ отправлен: 13.05.2003, 12:18
Отправитель: Avl2k


Отвечает BOLT

Добрый день, Antonio!
Раз ты такой умный, чего тогда не становишся экспертом?Нам такие люди нужны, а покритиковать, так и любой горазд на такое дело!Вот если помогать другим, то нееееет - это нам некогда!....Ладно не парься лучше чем орать, просто поправь и дело с концами.Счастливо!

Ответ отправлен: 12.05.2003, 21:40
Отправитель: BOLT


Отвечает xiron

Добрый день, Antonio!
Попросил бы не обобщать !
И не делать довоты единичными случаями

Ответ отправлен: 13.05.2003, 16:57
Отправитель: xiron


 Вопрос № 763

Здравствуте ув. эксперты?
Возникла проблема следующего плана.
Нужно найти на диске все файлы с расширением *.txt.
Как это реализовать?



Вопрос отправлен: 13.05.2003, 04:32
Отправитель: m0v8lack

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

Отвечает Knignick

Доброе время суток, m0v8lack!
А findfirst(), findnext() на что?


Ответ отправлен: 13.05.2003, 12:29
Отправитель: Knignick


Отвечает vitya

Здравствуйте, m0v8lack!
А под дос или под виндовс или под юникс?
В любом случае алгоритм одинаков:
есть функции FindFirst и FindNext - для конкретной оси смотри конкретные названия.
Потом пишешь рекурсивную функцию, которая для директории, которая ей переданна, как параметр - вызывает
voif f(char * dir)
{
bool morefiles = FindFirst(dir);
stuct foundfile ff;
while (morefiles)
{
morefiles = findnext(ff);
if (is_dir(ff))
{
f(ff.dir);
}
else
{
//находишь расширение, если txt то печатаешь, добавляешь, делаешь, что душе угодно.
}
}
}
вот и все :)

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


Отвечает baldr

Доброе время суток, m0v8lack!
Делаешь из корневого каталога рекурсивно поиск с помощью FindFirst и FindNext - ищешь каталоги. Находишь каталог - переходишь на него и опять ищешь. Как только очередной каталог не находишь - ищешь файлы по маске *.txt, а найденое запоминаешь. Затем выходишь из текущего каталога обратно (по рекурсии - backtracking) и опять ищешь каталог, заходишь...
В общем, будет у тебя функция, которая ищет каталоги в текущем и если находит очередной - вызывает сама себя. Если не находит - ищет файлы и возвращается в предыдущий каталог...

Ответ отправлен: 13.05.2003, 08:20
Отправитель: baldr


Отвечает akul

Добрый день, m0v8lack!
Гы, а какая операционная система?
если Win32, то FindFirstFile, FindNextFile, FindClose
помогут. Если Dos, то через int21 там что-то есть, посмотри в мурзилке. Давно не писал, не помню уже.

Ответ отправлен: 13.05.2003, 10:38
Отправитель: akul


Отвечает Ramzes

Добрый день, m0v8lack!
В MFC есть класс CFileFind.
Вот его-то и используй

Ответ отправлен: 13.05.2003, 14:07
Отправитель: Ramzes


Отвечает BOLT

Доброе время суток, m0v8lack!
Все просто как наш мир :-)
Используем заголовочный файл: "dir.h"
Функции:
1) int findfirst(const char *pathname, struct ffblk *ffblk, int attrib);
2) int findnext(struct ffblk *ffblk );
Надеюсь дальше ты сам справишься, если нет, тогда попроси-в следующе рассылки напишу тебе функцию поиска по заданной маске файла.

Ответ отправлен: 14.05.2003, 16:20
Отправитель: BOLT



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

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (40)
C / C++ (30)
Perl (4)
Builder / Delphi (16)
Pascal (31)
Basic / VBA (12)
Java / JavaScript (11)
PHP (5)
MySQL / MSSQL (4)
Пользователю
Windows 95/98/Me (41)
Windows NT/2000/XP (30)
"Железо" (29)
Поиск информации (14)
Администратору
Windows NT/2000/XP (19)
Linux / Unix (9)
Юристу
Гражданское право (7)
Семейное право (4)
Трудовое право (5)
КоАП (4)

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




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование


Яндекс цитирования
© 2003 Россия, Москва. Авторское право: RusFAQ.ru

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

В избранное