PAINTCTRUCT.rcPaint is empty ?! -- STD because !!!
- From
- Boris Rudakov (2:5054/9.4)
- To
- Konstantin L. Topanov ()
- Date
- 1996-06-25T01:12Z
- Area
- SU.WINDOWS.PROG
Hello Konstantin!
21 Jun 96 09:15, Konstantin L. Topanov wrote to All:
KT> X-RealName: "Konstantin L. Topanov"
KT> Hi!
>> From: Boris Rudakov <Boris_Rudakov@p4.f9.n5054.z2.fidonet.org>
>> Message-ID: <31c96c77@p4.f9.n5054.z2.fidonet.org>
>> Subject: [News] PAINTCTRUCT.rcPaint is empty ?! -- STD because !!!
>> Date: Thu, 20 Jun 96 15:01:01 +0300
>> Единственное, что привлекло мое внимание после пары минут
>> его разглядывания, была инструкция STD. Я, чисто проформы ради, при
>> выхоле из функции, влепил CLD. И запустил. Когда я увидел, что все
>> заработало, дыхание у меня перхватило, а мир начал рушиться.
KT> В документации еще к MS C v5.0 было сказано (в той, что на русском
KT> языке ходила), что при написании на ассемблере обязательно оставляйте
KT> направление 'CLD', т.к. RunTime это предполагает и не устанавливает...
Урроды :( Теперь это я уже знаю. В хелпах Борланда (ни Паскалевских ни Сишных) я НИКОГДА не видел ни слова про это.
KT> А вот кусочек из документации по VC++ v1.52c
KT> -+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--
KT> Preserving Registers with the Inline Assembler
KT> An __asm block inherits whatever register values happen to result from
KT> the normal flow of control. Within a function, you do not need to
KT> preserve the AX, BX, CX, DX, or ES registers. You should preserve DI,
KT> SI, DS, SS, SP, and BP.
А это уже связано с транслятором и тем как он регистры распределяет. На SI и DI операционка никакох ограничений не накладывает. Другое дело DS, SS, SP и BP.
Кстати, я в Борланде вообще всегда вырубаю register allocation.
KT> If your function changes the direction flag using the STD or CLD
KT> instructions, you should restore the flag to its original value.
Теперь я это знаю. Любимый Борланд не почесался это упомянуть. В итоге, я потратил на это ~2 часа.
KT> Regards,
KT> Konstantin L. Topanov
Boris Rudakov, Лень - двигатель прогресса.
BBR
--- Be happy: BBR is looking at you !
* Origin: АлкАголь малыми дозами безвреден в любых количествах (2:5054/9.4)