Autor: Jan Stożek (jasio_at_nowhere.pl)
Data: Thu 21 Oct 1999 - 01:55:44 MET DST
On Mon, 18 Oct 1999 14:00:46, infokub_at_nw.pp.com.pl (Leszek Kubrak)
wrote:
> Czy któryś z kolegów próbował przenieść do OS/2 (zrekompilować) aplikacje pisane
> w Turbo Pascalu ?
Owszem, trochę własnych drobiazgów poprzenosiłem pod Virtual Pascala,
a przez pewien czas (jak miałem na to czas i mnie to rajcowało), to
nawet jeden programik konserwowałem równolegle w wersji DOS i OS/2.
Generalnie działało, ale w praktyce pojawiło się trochę "ale":
- niezgodności niektórych standardowych typów numerycznych i
tekstowych, zwłaszcza po dołączeniu biblioteki USE32 (a była mi ona do
czegoś potrzebna. ;)
- obsługa plików - w DOS-ie string całkiem wystarcza do
przechowywania ścieżek, w OS-ie niestety nie i chyba to nawet nie jest
sygnalizowane (string ma do 255 znaków, a dopuszczalna pełna ścieżka
jest chyba dłuższa - czy coś majaczę?)
- procedury sprawdzające poprawność nazw plików (o ile takie
stosujesz) nie działają poprawnie
- systemowe funkcje obsługi plików zwracają nazwę pliku dużymi
literami
W efekcie bibliotekę, której używałem do obsługi plików musiałem
przepisać na nowo.
- inna jest konstrukcja wskaźników, więc nie wszystkie operacje na
wskaźnikach są poprawnie przenoszone (różnica jest już na poziomie
składni, więc stosunkowo łatwo to wychwycić)
- przekompilowane Turbo Vision chodziło mi w VIO _wolniej_ niż w
oknie DOS (pewnie dlatego, że funkcje w TV odpowiedzialne za rysowanie
na ekranie były pisane w asemblerze, a po przeniesieniu są w Pascalu)
- wstawki w asemblerze mogą źle działać
- miałem jakieś problemy z funkcją IDLE() w TV
- obsługa parametrów w VP jest co prawda zgodna z BP, ale nonsensowna
z punktu widzenia OS-a: standardowe funkcje ani w BP ani w VP nie
obsługują poprawnie parametrów w cudzysłowach - co spacja w command
line to nowy parametr.
- i to jeszcze nie wszystko.
Różnice nie są może duże, ale w praktyce były dość uciążliwe. Miałem
więc trochę zabawy, a w programie pojawiło się sporo dodatkowych
ifdefów. Do tego DOSFindFirst (albo DOSFindNext - nie pamiętam już
dokładnie) nie działał poprawnie podczas pracy w debuggerze - chyba
zawsze sygnalizował brak plików, czy coś takiego.
-- Pozdrawiam, Jan. PS. Mój adres: nowhere = Polbox.
To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 15:24:03 MET DST