dimorlus: (Default)
[personal profile] dimorlus
Скажите, а как из готовых исходников собрать dll под винду? Есть файлы (от сюда http://www.phatcode.net/downloads.php?id=188)

NTVDM.H
NTOLDAPP.CPP
NTVDM.C
NTOLDAPP.DEF
NTOLDAPP.RC

есть bcc32, собственно c в obj понятно как сделать, но вот что сказать линкеру?

Date: 2006-02-06 07:21 am (UTC)
From: [identity profile] robinbobin.livejournal.com
hb2u!

a sho eto za files?
sobral?

Date: 2006-02-06 07:35 am (UTC)
From: [identity profile] dimorlus.livejournal.com
Pasiba, a failo sobral konechno. Eto takaja zabavnaja shtuka daet interfeis dosovskim programmam k winapi pod nt. Nekaja pomes' dosovskoi i konsol'noi programmy poluchaetsya.

Date: 2006-02-06 09:00 am (UTC)
From: [identity profile] robinbobin.livejournal.com
xi-xi.

ya kogda-to dos95 pisal.

tak shoby win32 src, pod dos sobiralis, i po vozmozhnosti rabotali :)

Date: 2006-02-06 09:23 am (UTC)
From: [identity profile] dimorlus.livejournal.com
Nu tut drugoe, vigliadit shmanstvom. V dos-programme pishetsya illegal instruction, naprimer

dw 0C4C4h
db 58h
db 0

ntvdm lovit iskluchenie, smotrit chto ego visvalo i peredaet upravlenie win32 kodu, kotory v dll zhivet.

Date: 2006-02-06 10:04 am (UTC)
From: [identity profile] robinbobin.livejournal.com
da tak vsya win32 rabotaet.

v win95, vashe dlya exception uzalsya text v BIOS'e tipa Copyright,
kotoryj _obychno_ po odnomu addresuu zhil.

tam eshe v win.ini (ili kak tam ego) byl parameter, DoNotBios, ili kak tam ego...

Date: 2006-02-06 10:25 am (UTC)
From: [identity profile] dimorlus.livejournal.com
Udivitel'no, chto eto voobsche kak-to rabotaet... Kstati ono gluchit pri popitke callback obratno v DOS, prichem imenno gluchit - inogda rabotaet, inogda net. A chto, pod '9x est' chto-to pokhozhee?

Date: 2006-02-06 10:54 am (UTC)
From: [identity profile] robinbobin.livejournal.com
да вся винда через exceptoins работает.
хорошо описано у умных людей.
Питрека, Рихтера.

особенно прикольно читать книгу, забыл фамилию, чувака, который прокопал всю винду 95, и доказал,
шо win95 это 32битная ос - фигня, и рекламная штучка.

там в секунду мммммммного раз отрабатывает 16bitnyj dosovskij kod. xotya mestami elementrano bylo zamenit' na 32.

no ochen interesno eti raskopki...

Date: 2006-02-06 11:00 am (UTC)
From: [identity profile] robinbobin.livejournal.com
shulman ego familie

Date: 2007-03-02 08:24 pm (UTC)
From: [identity profile] everard-took.livejournal.com
Фамилия человека - Шульман, читал еще в 96, наличие 16битного кода в 9х никто и не отрицал - там таковой код есть весь window manager и вся GDI (и все это под одним мутексом! ура!).

Шульман еще доказал, что ядро ДОСа там тоже есть, и вызовы типа "получить текущее время" там ведут в ДОС.

Помойнейшая ОС. 32битная обертка над 16битным core.

Я как в 96 на НТ4 перелез - больше ее толком не трогал, так, игрался пару раз.

Date: 2007-03-02 08:21 pm (UTC)
From: [identity profile] everard-took.livejournal.com
Под 9х это все в самом кернеле. Кернел 9х развивался как DOS VM монитор поверх все того же DOS, а не как полноценная ОС.

Date: 2007-03-02 08:18 pm (UTC)
From: [identity profile] everard-took.livejournal.com
А! Прибамбас к DOS VM? поди для эмуляции там саундбластера?

Микрософтными тулами (я люблю BUILD из SDK или DDK) - на раз.

Иначе:

- для компиляции RC надо включить правило типа

.rc.res:
rc $(<)

или типа того. Еще у RC есть флажки командной строки, хорошо бы изучить.

- DEF и RES файлы передаются линкеру в командную строку.
- башка остается в зависимостях. Впрочем, башку от микрософта можно и не включать туда - все равно править не будут.
- остальное - см. мануал на bcc32.

January 2023

S M T W T F S
1234567
891011121314
15161718192021
222324 25262728
293031    

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 4th, 2026 08:34 am
Powered by Dreamwidth Studios