![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
Если подставить "101" всеравно меню не отображается.
В чем разница между (char *)101 и "101"? Это сообщение отредактировал(а) S.A.G. - 21.8.2007, 18:48 -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 12 Всего: 92 |
а если подставить (LPSTR)101 или reinterpret_cast<LPSTR>(101)? вот пример накидал, может прояснит:
|
|||
|
||||
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
(char *)101 работает
Попробуй объяснить чем отличается "101" от (char *)101 -------------------- Вот она задачка: спасти себя от себя самого © 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 |
char * a = "101", имеем последствие - в a содержится адрес 1
char * a = (char *)B == char * a = (char *)101... привести целую константу к типу "указатель на чар"... компилятор разместит строку в память а адрес 1 присвоит a? т.е. когда мы просто пишем "101" оно в памяти не размещено, а когда (char *)101 то строка "101" помещается в память? Это сообщение отредактировал(а) S.A.G. - 21.8.2007, 19:56 -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 12 Всего: 92 |
да ничего не помещается, просто мы явно указываем адрес строки = 101, или 0x00000065(hex). Те говорим: "вот по этому адресу лежит строка" (точнее символ или их последовательность), откуда она там возьмется науке неизвестно... |
|||
|
||||
| 586 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 39 Всего: 146 |
если wc.lpszClassName <= 0xFFFF, то это ID ресурса,
если wc.lpszClassName > 0xFFFF, то это указатель на LPCTSTR |
|||
|
||||
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
А разве этот ID не нужен нам как число..? Система генерирует не случайный адрес (101)?
Я поначалу не въехал в преобразование типов... -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 27 Всего: 158 |
zkv, ты сам немного запутался... MAKEINTRESOURCE, как уже тут неоднократно упоминалось, просто приведение типа к требуемому прототипами соотв.функций. а передается просто номер - не адрес строки, а просто число. а так как адресов меньше 0xFFFF нет, то функция может четко определить, номер ресурса ей приплыл или адрес строки с именем ресурса. |
|||
|
||||
| zkv |
|
||||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 12 Всего: 92 |
ну это уже речь идет об интерпретации системы полученных данных, верно? тогда следует заметить, что это верно: только система не пытается обратиться к памяти по этому адресу, а рассматривает его (сам адрес) как ID, при условии указанном 586 Добавлено через 3 минуты и 32 секунды нет, я возможно только отошел от темы, процитирую себя:
Вообще то объяснял, что чем отличается "101" от (char *)101 |
||||
|
|||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 27 Всего: 158 |
значит это уже я запутался, читая - витиевато излагаете...
|
|||
|
||||
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
уууууууууууу блииииииииииин
Это сообщение отредактировал(а) S.A.G. - 21.8.2007, 20:49 -------------------- Вот она задачка: спасти себя от себя самого © 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 |
Перед тем как переосмыслить все приведу цитату из книги:
Я таки считал что (char *)101 и "101" - одно и то же, и упрямо не отрывался от этого толкования. Иногда нужно ткнуть носом. Новое объяснение породило еще вполне естественный вопрос. А нафиг системе так дико извращаться, запоминая ID ресурса (целое число без знака) в форме указателя, предварительно преобразовав типы (!!!)? Не проще было бы в структуре типа WNDCLASS предусмотреть поле соотв. целого типа? И еще одно. Чем же так отличается число 101 (я непомню к какому типу компилятор C++ относит такие целочисленные константы) и адрес строки (да и вообще любой адрес). Ведь любой адрес это поидее тоже целое число? Прочитал вот это. Стало понятно почему работает пример из книги. Т.е. стало понятно что есть некоторые обстоятельства при которых так может работать.
возможно и зачем предусмотрено оба варианта. Это сообщение отредактировал(а) S.A.G. - 23.8.2007, 01:06 -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
||||
|
|||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 27 Всего: 158 |
невнимательно читал... |
|||
|
||||
![]()
|
| Правила форума "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. |