> > истинное значение параметра 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 - базовый адрес в памяти, определяющий ту область в адресном пространстве процесса, где находится образ данного EXE-файла
Тогда для разных процессов hinst должен быть одинковый -> Next Question29.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>
что делает система с 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 - ежели он лежит в старших двух гигабайтах адресного пространства (на что похоже), то это запросто может и пройти.