информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsВсе любят медЗа кого нас держат?
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[Win32] нет не должен 30.10.02 13:06  Число просмотров: 1114
Автор: beetle <beetle> Статус: Member
<"чистая" ссылка>
> > истинное значение параметра hInstance - базовый адрес
> в
> > памяти, определяющий ту область в адресном
> пространстве
> > процесса, где находится образ данного EXE-файла
>
> если это так, то параметр hInstance в GDI ф-иях абсолютно
> бесмысленен.
> Например - зачем мне передавать hInstance в CreateWindow,
> если система и так знает и базовый адресс и pid и еще много
> того чего даже я не знаю ?
1.ПРОЦЕСС ПО УМОЛЧАНИЮ ГРУЗИТСЯ по адресу 0х00400000
но при желании можно этот адрес изменить директивой компоновщика /BASE
или править заголовок и пересчитывать релоки
2/hInstanser для GDI функций служит для идентификации необходимого EXE-файла
3. hInstance
Windows 95/98: Handle to the instance of the module to be associated with the window. - можешь ассоциировать с каким угодно модулем, не обязательно со своим приложением, а с dll к примеру
Windows NT/2000: This value is ignored.
<programming>
[Win32] Возвращаемся в первый класс: hInstance (вопрос глупый) 29.10.02 12:18  
Автор: PS <PS> Статус: Elderman
<"чистая" ссылка>
Зачем системе нужен hInstance, если каждый процесс однозначно определяется с помощью PID ?

(Рихтера под рукой нет, так что извиняйте)
[Win32] Возвращаемся в первый класс: hInstance (вопрос глупый) 29.10.02 14:13  
Автор: beetle <beetle> Статус: Member
<"чистая" ссылка>
истинное значение параметра hInstance - базовый адрес в памяти, определяющий ту область в адресном пространстве процесса, где находится образ данного EXE-файла
Тогда для разных процессов hinst должен быть одинковый -> Next Question 29.10.02 15:16  
Автор: PS <PS> Статус: Elderman
<"чистая" ссылка>
> истинное значение параметра hInstance - базовый адрес в
> памяти, определяющий ту область в адресном пространстве
> процесса, где находится образ данного EXE-файла

если это так, то параметр hInstance в GDI ф-иях абсолютно бесмысленен.
Например - зачем мне передавать hInstance в CreateWindow, если система и так знает и базовый адресс и pid и еще много того чего даже я не знаю ?
[Win32] нет не должен 30.10.02 13:06  
Автор: beetle <beetle> Статус: Member
<"чистая" ссылка>
> > истинное значение параметра hInstance - базовый адрес
> в
> > памяти, определяющий ту область в адресном
> пространстве
> > процесса, где находится образ данного EXE-файла
>
> если это так, то параметр hInstance в GDI ф-иях абсолютно
> бесмысленен.
> Например - зачем мне передавать hInstance в CreateWindow,
> если система и так знает и базовый адресс и pid и еще много
> того чего даже я не знаю ?
1.ПРОЦЕСС ПО УМОЛЧАНИЮ ГРУЗИТСЯ по адресу 0х00400000
но при желании можно этот адрес изменить директивой компоновщика /BASE
или править заголовок и пересчитывать релоки
2/hInstanser для GDI функций служит для идентификации необходимого EXE-файла
3. hInstance
Windows 95/98: Handle to the instance of the module to be associated with the window. - можешь ассоциировать с каким угодно модулем, не обязательно со своим приложением, а с dll к примеру
Windows NT/2000: This value is ignored.
hInstance еще с win16 тянется. так и повелось 29.10.02 14:00  
Автор: dl <Dmitry Leonov>
<"чистая" ссылка>
Это мы помним: на самом деле пытаюсь подвести к следующему вопросу: 29.10.02 15:25  
Автор: PS <PS> Статус: Elderman
<"чистая" ссылка>
что делает система с hInstance которые я ей передаю при вызове ф-ий ?
Ситуация получается смешная: система создает мой процесс и дает мне hInst (типа - бери и храни). После чего я говорю системе: создай мне окно и вот тебе hInst, в котором ты нуждаешся ;)
Это мы помним: на самом деле пытаюсь подвести к следующему вопросу: 29.10.02 17:01  
Автор: dl <Dmitry Leonov>
<"чистая" ссылка>
> что делает система с hInstance которые я ей передаю при
> вызове ф-ий ?
> Ситуация получается смешная: система создает мой процесс и
> дает мне hInst (типа - бери и храни). После чего я говорю
> системе: создай мне окно и вот тебе hInst, в котором ты
> нуждаешся ;)

Цитатка из MSDN (описание CreateWindow):
hInstance
Windows 95/98/Me: [in] Handle to the instance of the module to be associated with the window.
Windows NT/2000/XP: This value is ignored.

Так что это просто большой привет архитектуре '9x. Интересно было бы подсунуть сюда чужой hInstance - ежели он лежит в старших двух гигабайтах адресного пространства (на что похоже), то это запросто может и пройти.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach