Носколько вопросов о Win32
- From
- Vitas Ramanchauskas (2:5061/2.53)
- To
- Boris Rudakov ()
- Date
- 1996-06-22T12:14Z
- Area
- SU.WINDOWS.PROG
Hi!{
21 Jun 96 13:58, Boris Rudakov (2:5054/9.4) -> Vitaly Ladygin:
BR> Впрочем, это смотря что писать, (и сколько пил накануне:):):)
я б сказал наоборот - сколько писать и что пил накануне ;)
BR> Иногда на ровном месте так упрешься, что часа 3-4 ищешь дурацкий
BR> баг (как с этим CLS/STS).
^^^^^^^ так что было накануне ? ;)) (cld/std)
BR> Нэ-хо-чу. Мне надо-то подгрузить Win16 DLL и солучить адрес
BR> хотя-бы одной функции, ее я вызову через CALL FWORD PTR и дело
BR> сделано. Делов-то, ненадо мне генераторов :) Как верно заметил по
BR> поводу этих thunk-ов Шульман, "а надо ли такие сложности ?"
не все так просто в этом мире. когда call происходит в 32-битном сегменте, то на стек ляжет 32-битный адрес. а 16-битная dll этого не ожидает. по этой причине произойдут следующие неприятные вещи - "съедут" параметры, команда ret отработает неправильно (она бы отработала правильно если бы была б спрефиксом 66h). впрочем один экзотический вариант есть - сделать из 32-битного сегмента 16-битный call, но это получится только если адрес возврата будет лежать в пределах первых 64-килобайт. еще будет маленькая большая проблема со стеком (sp-esp), но если все это побороть то можно ручками сделать то, что проще быстрее и надежнее делается с помощью thunk'ов.
}EndOfHi!
--- The End.
* Origin: Vitas Here (2:5061/2.53)