|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июн 24, 2004 10:05:21 Нажимаешь F7 в оле на InitCommonControls и что же видим - ret. Вопрос: это для совместимости со старыми версиями WinXX или оптимизация Microsoft, что-то типа отложенная загрузкa dll (извините за смешение понятий с Рихтером, зд. это для общего смысла) - когда понадоблюсь только позови :) Ну и собсно, стоит ли юзать InitCommonControls, а то туева хуча док описывает начало работы с CommonControls именно с этой функции. |
|
|
Дата: Июн 24, 2004 10:16:19 У Iczelion'а написано, что вызов этой функции нужен, чтобы PE-загрузчик загрузил библиотеку comctl32.dll в память. Можешь вместо InitCommonControls написать вызов типа LoadLibrary("comctl32"), результат будет тот же. |
|
|
Дата: Июн 24, 2004 10:33:42 Можно сделать так:
..........................
.CODE
start:
invoke GetModuleHandle, NULL
mov hInstance, eax
invoke DialogBoxParam, eax, 200, 0, OFFSET DlgProc, 0
invoke ImageList_Destroy,hImgList
invoke ExitProcess, eax
invoke InitCommonControls
DlgProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
mov eax, uMsg
.IF eax == WM_INITDIALOG
...............................
Т.е. InitCommonControls даже не юзается, но библиотека будет загружена. |
|
|
Дата: Июн 29, 2004 11:47:18 Правка Asterix Мне вот стало интересно: а почему большинство масмовых утилит начинается с кода: invoke GetModuleHandle,NULL mov hInstance,eax ... ? Разве были преценденты, что EXE был загружен по отличному от ImageBase адресу? |
|
|
Дата: Июн 29, 2004 12:39:37 IceStudent > ? Разве были преценденты, что EXE был загружен по отличному от ImageBase адресу? Какие прецеденты? В общем случае Image Base может варьироваться в зависимости от особенностей сборки exe'шника, и поэтому должен быть определен при старте проги. |
|
|
Дата: Июн 29, 2004 13:29:08 exe будет загружен не по imagebase если его загружают через LoadLibrary() |
|
|
Дата: Июн 29, 2004 14:49:52 > exe будет загружен не по imagebase если его загружают через LoadLibrary() при условии, что у него есть таблица перемещаемых элементов ;) в общем, свой базовый адрес можно брать и константой если очень хочется оптимизировать прогу по размеру |
|
|
Дата: Июл 1, 2004 13:46:07 Правка Asterix и поэтому должен быть определен при старте проги В смысле, определён загрузчиком, так? А вообще, зачем его трогать? Ну, грузятся все ехе под 9х по 0х400000, разве бывает необходимость, чтобы ехе загрузился (при старте, а не при LoadLibrary) по другому адресу? |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.043 |