[ alpha @ 01.06.2004. 01:42 ] @
Prijatelj me je zamolio da mu pomognem oko debugovanja i kompajliranja nekog starijeg programa za koji je dobio source kod. Program je pisan u C-u, i koliko sam video po header fajlovima ima #define-ove i za MSC i za TC (sto predpostavljam da je Turbo C, ali nisam siguran - ipak se ne razumem dovoljno) - konkretno kod includeovanja <mem.h> i <memory.h> ili tako nesto - znaci da prepozna koji je kompajler pa da u zavisnosti od toga uradi include odredjenih header-a, sto mi opet govori da su autori programa racunali na to da se taj kod moze kompajlirati u razlicitim kompajlerima. Basically, dva problema su nas zakocila: 1.Program na par mesta definise i derklarise jedan broj funkcija koje su manje vise ovog izgleda: static void interrupt far intXX(int br) // XX je razlicit za svaku funkciju. Posto smo ubacili program u VS6, i pokusali da uradimo build, kompajler je prvo prijavio nesto kao: "far is an obsolete keyword". Kada sam pokusao da izbegnem ovo (pretpostavljam da se to "far" odnosi na asm i na stariju memorijsku strukturu, odnosno stranicenje - nesto malo sam o tome citao ali vezano za asembler) tako sto sam izbrisao "far" svuda, ostao je sledeci problem: kompajler se sada zali da u definiciji funkcije ima rec viska, odnosno, ne tretira rec "interrupt" kao keyword, vec kao naziv funkcije. 2. Program koristi strukturu REGS koja nije nigde definisana, pa je naravno kompajler ne prepoznaje. Pregledao sam sve header fajlove koji su includeovani u kod, ukljucujuci i <stdlib.h> <stdio.h> <memory.h> <dos.h> i nigde nisam nasao definicije gornjih reci, odnosno "far", "interrupt" i "REGS", sto me navodi na zakljucak da se ovde radi o nekim stvarima koje su verovatno izbacene iz C++ i C (jasno mi je da ovde nije rec o standardnom C-u, pa kad kazem izbacene, mislim na to da tih biblioteka koje su sadrzale te varijante vise nema) - ali sam ipak skloniji da poverujem da je problem u tome sto ja ne znam kako da aktiviram te keyworde, odnosno ne znam u kom se headeru u ovoj varijanti (VS6) koju ja koristim nalaze. Pokusao sam da prokopam po literaturi koju imam i nigde nisam nasao resenje za ovo, odnosno, nigde nisam nasao da neko uopste spominje programiranje interapta u C-u. Ako bi neko mogao da me uputi ili da pomogne, bio bih zahvalan. Bas me kopka i par dana se mantam sa tim i nikako da resim stvar. Valjda nisam bio previse konfuzan :) |