![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| S.A.G. |
|
||||||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
WinAPI, MVS 8
Достаточно ли для отображения меню главного окна выполнить следующие действия:
Resource файл:
Хидер файла ресурсов:
В готовом приложении меню нет. Почему? Еще такой вопрос. В созданном .rc и сгенерированном хидере среда создает кучу "левого" кода непонятного содержания и смысла. Как-то невдобно себя чувствую глядя на это безобразие. Стоит ли в этом разбираться или оное нужно принять как должное (системные настройки среды или на что-то в этом духе списать чтобы успокоить взбунтовавшийся разум)? Понимаешь, что рано или поздно может выплыть какой-нибудь нюанс связанный с этим кодом.. Меня как-то раздражает любой "левый" код в такого рода средах. Это сообщение отредактировал(а) S.A.G. - 20.8.2007, 21:42 -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
||||||
|
|||||||
| 586 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 39 Всего: 146 |
||||
|
||||
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
Ммда.. везде эти макросы, а как заглянешь в них..
А в чем состоит принципиальная разница? Это сообщение отредактировал(а) S.A.G. - 21.8.2007, 14:36 -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| 586 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 39 Всего: 146 |
||||
|
||||
| S.A.G. |
|
||||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
Чем так принцыпиально отличается "IDR_MENU1" от MAKEINTRESOURCE(IDR_MENU1)?
lpsz расшифровывается как указатель на строку. Однако даже если я вместо "IDR_MENU1" подставлю char id[] = "IDR_MENU1" всеравно меня не спасет.
Скажите, кто-то понимает зачем это нужно или все просто принимают "на веру"? Сначала приводится к WORD-у (и зачем эти макрозамены?) Потом к непонятному ULONG_PTR И наконец в LPSTR Читаем Финогенова: LPSTR, PSTR - Строка символов Windows с завершающим нулем; а id тогда что? Это сообщение отредактировал(а) S.A.G. - 21.8.2007, 17:23 -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
||||
|
|||||
| Damarus |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 671 Регистрация: 6.5.2006 Репутация: 4 Всего: 29 |
||||
|
||||
| zkv |
|
||||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 12 Всего: 92 |
S.A.G., иногда используют вместо MAKEINTRESOURCE()
код говорит сам за себя - грубо говоря, рассматривать число IDR_MENU1 как адрес строки идентифицирующей ресурс. Признаюсь, что конкретнее я разобраться даже не пытался - не вижу необходимости Добавлено через 9 минут и 56 секунд это ты про что? Вот про это:
так ведь написано: // Next default values for new objects но вникать в это смысла нет особого, можно считать служебной информацией для редактора |
||||
|
|||||
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
Damarus, имелось ввиду id подставить а не всю строку, я же выделил его. И я знаю что такое макрорасширение.
Какая разница между типами LPSTR и char *? Это сообщение отредактировал(а) S.A.G. - 21.8.2007, 18:11 -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 12 Всего: 92 |
||||
|
||||
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
Тогда почему оно не работает с просто "IDR_MENU1"? Это же строковый литерал.
-------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 12 Всего: 92 |
||||
|
||||
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
lpszMenuName требует LPCSTR
Если.. LPSTR и char * одно и тоже то.. почему если я напишу в определениях char id[] = "IDR_MENU1" и подставлю.. .. вот так: lpszMenuName = id, оно не работает..? В Финогенове вообще написано lpszMenuName = "IDR_MENU1" и заявлено что будет работать но нифига не пашет не в первом ни во втором случае. А вот пресловутый макрос MAKEINTRESOURCE() решает все проблемы и обнаруживает непостижимую разницу между char * и LPSTR. Или у меня уже совсем крыша съехала? А все толдычут что IDR_MENU1 это число и все, да знаю, знаю я! Это сообщение отредактировал(а) S.A.G. - 23.8.2007, 00:03 -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| zkv |
|
||||||||||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 12 Всего: 92 |
елки-палки. Два варианта:
и
в первом случае под строковый литерал на этапе компиляции будет выделена память, затем в процессе выполнения адрес этого участка будет записан в pA во втором случае мы четко говорим, что строка расположена по адресу B. Чувствуешь разницу? Добавлено через 1 минуту
честно говоря не читал его... Добавлено через 6 минут и 35 секунд а может не в процессе... но не суть
может у него есть основания так полагать |
||||||||||
|
|||||||||||
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
бл...., забыл совсем что в кавычках макросы не макросы
Оно? Если подставляю "101" не работает всеравно. :( Это сообщение отредактировал(а) S.A.G. - 21.8.2007, 18:42 -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 12 Всего: 92 |
||||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |