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

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


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

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU
(Тестовый режим)

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 40
от 16.02.2005, 17:10

Администратор:Калашников О.А. (adm@rusfaq.ru)
В номере:Вопросов: 1, Ответов: 3


Вопрос № 16902
Здравствуйте.
1.
Описание ресурсов: MyIcon ICON iconfile.ico
Текст программы: HICON hIcon=LoadIcon(hInst,"MyIcon");
2.
Описание ресурсов: 125 ICON iconfile.ico
Текст программы: HICON hIcon=LoadIcon(hInst,MAKEINTRESOURCE(125));
Скажите,пожалуйста , почему первый вариант не срабатывает (по крайней мере у меня). И в чем заключается работа MAKEINTRESOURCE(125).
Спасибо.
Отправлен: 11.02.2005, 17:08
Вопрос задал: Тюменцев Иван Валерьевич (статус: Читатель)
Всего ответов отправлено: 3

Отвечает: vitya
Здравствуйте, Тюменцев Иван Валерьевич!
MAKEINTRESOURCE превращает числовой идентификатор в строковой.
Ответ отправил: vitya (статус: Профессор)
Отправлен: 11.02.2005, 17:19

Отвечает: Федин А.В.
Здравствуйте, Тюменцев Иван Валерьевич!
2. MSDN:
The MAKEINTRESOURCE macro converts an integer value to a resource type compatible with the resource-management functions. This macro is used in place of a string containing the name of the resource.
1. Сказать сложно, слишком маленький пример :)
Ответ отправил: Федин А.В. (статус: 2-ой класс)
Отправлен: 12.02.2005, 13:27

Отвечает: _vt
Здравствуйте, Тюменцев Иван Валерьевич!
И не должно срабатывать. MAKEINTRESOURCE - это макрос, возвращающий строковый указатель на число, причем во младшем байте этого указателя. Если посмотреть файл winuser.h, то этот макрос определен так:


#define MAKEINTRESOURCEA(i) (LPSTR)((DWORD)((WORD)(i)))
#define MAKEINTRESOURCEW(i) (LPWSTR)((DWORD)((WORD)(i)))
#ifdef UNICODE
#define MAKEINTRESOURCE MAKEINTRESOURCEW
#else
#define MAKEINTRESOURCE MAKEINTRESOURCEA
#endif // !UNICODE


А про строковое наименование ресурса твоя программма ничего не знает - она работает только с числовыми идентификаторами.

* EMan 2 beta: back in Black :)
Ответ отправил: _vt (статус: Академик)
Отправлен: 12.02.2005, 13:38


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

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

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, Россия, Москва. Идея, дизайн, программирование: Калашников О.А.


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.cplus
Отписаться

В избранное