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





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
hInstance еще с win16 тянется. так и повелось 29.10.02 14:00  Число просмотров: 1130
Автор: dl <Dmitry Leonov>
<"чистая" ссылка>
<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