Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| | |
Почему? direct thunking как раз и работает только в Win9x/ME (в NT функции Qt_Thunk нет) 30.10.03 12:38 Число просмотров: 1288
Автор: :-) <:-)> Статус: Elderman
|
|
<programming>
|
[Win32] direct thunk 23.10.03 11:16
Автор: Kerk Статус: Незарегистрированный пользователь
|
Нужно вызвать функцию из 16bit DLL, используя функцию QT_THUNK.
Но туда нужно передать указатель на буфер, который эта функция должна заполнить... Как транслировать указатель в 16bit ?
|
|
[Win32] direct thunk 23.10.03 13:04
Автор: :-) <:-)> Статус: Elderman Отредактировано 23.10.03 13:06 Количество правок: 1
|
Посмотри исходники ex2fs - плагин к Total Commander, позволяющий читать Линуксовые разделы под Виндами. Он open-source.
Там вызов 16bit DLL сделан через thunk compiler.
Если ты вызываешь QT_Thunk напрямую, то нужно аллокировать буфер с помощью "недокументированной" функции GlobalAlloc16, она вернет 16-битный указатель (селектор:смещение), который можно передать в 16bit DLL.
А обращаться к этому буферу в 32-битной проге можно преобразовав этот указатель в 32-битный с помощью WOWGetVDMPointer.
Исходник на Дельфи тут
|
| |
А в Win98/ME direct thunking разве работать не будет? 30.10.03 11:17
Автор: Kerk Статус: Незарегистрированный пользователь
|
|
| | |
Почему? direct thunking как раз и работает только в Win9x/ME (в NT функции Qt_Thunk нет) 30.10.03 12:38
Автор: :-) <:-)> Статус: Elderman
|
|
| | | |
Просто комментарии в исходнике с толку сбили... ;))) 31.10.03 13:48
Автор: Kerk Статус: Незарегистрированный пользователь
|
|
|
|