/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
Bech_bb 500
kyllekylle 500
jdjespers.. 500
gibson 300
scootergr.. 300
molokyle 287
10  strarup 270
Konvertering af gammel c-kode
Fra : Torben W. Hansen


Dato : 18-06-07 13:31

Hej,

// Forklaring:

Jeg er ved at konvertere et gammelt stykke ANSI-C kode (altså ikke C++), der
er udviklet med Turbo C++, for DOS i omkring 1990 (ikke 1890 he, he).

Koden er et konsolprogram, der konverterer en sort/hvid PCX-fil til et
binært format for til sidst at generere en INTEL-HEX-fil, som kan loades ned
i en microcontroller. Billedet der er indeholdt i PCX-filen vises grafisk på
PC'en, som eksekverer konsolprogrammet.

Kildekoden gør brug af nogle Borland-specifikke biblioteker og headerfiler
bl.a. conio.h, graphic.h samt alloc.h, string.h, stdio.h, stdlib.h ligesom
der benyttes far-pointere og far-funktioner.

Min tanke er at re-kompilere koden med en nyere compiler, sandsynligvis DEV
C++, til et Windows konsolprogram.

Det er noget tid siden at jeg har programmeret C til en PC og er ikke
længere habil i standardbibliotekerne og de ændringer sproget har undergået.

Jeg har importeret projektet i DEV C++ og får som forventet en række fejl og
warnings, bl.a. pga. "conio.h", "graphic.h" samt far-declarationer.

// Spørgsmål:

Findes der alternativer til "conio.h" og "graphic.h" som kan benyttes med
DEV C++ ?

Bruges stadig far-declarationer eller er disse afskaffet pga. lineær
adressering i windows ?

Håber at der er nogen, der kan hjælpe lidt - på forhånd tak...

Med venlig hilsen
Torben W. Hansen











 
 
Ukendt (18-06-2007)
Kommentar
Fra : Ukendt


Dato : 18-06-07 18:44

>
> Findes der alternativer til "conio.h" og "graphic.h" som kan benyttes med
> DEV C++ ?

Jeg ville
1) få det til at virke uden det grafiske først.
2) bruge setPixel i et windows program.

> Bruges stadig far-declarationer eller er disse afskaffet pga. lineær
> adressering i windows ?

Fjern bare disse.

Jeg gætter på at disse pcx'er er ret små. < 50k?
Lav bare dine buffere med new. Så havner de på heapen.

Hvis du rigtigt skal allokere hukkomelse, vil det være pænt af dig at bede
windows om det. Kan ikke lige huske navnet på funktionen.

tpt




Torben W. Hansen (18-06-2007)
Kommentar
Fra : Torben W. Hansen


Dato : 18-06-07 20:15

"Troels Thomsen" <nej tak ...> skrev i en meddelelse
news:4676c459$0$52105$edfadb0f@dread11.news.tele.dk...
> >
>> Findes der alternativer til "conio.h" og "graphic.h" som kan benyttes med
>> DEV C++ ?
>
> Jeg ville
> 1) få det til at virke uden det grafiske først.
> 2) bruge setPixel i et windows program.

Ja - men nu skulle det jo være et konsol-program, uden Windows API'et.
Hvis jeg var rutineret nok ville jeg nok skrevet det om til Windows, men det
er jeg ikke for øjeblikket.

Med venlig hilsen
Torben W. Hansen



Mogens Hansen (18-06-2007)
Kommentar
Fra : Mogens Hansen


Dato : 18-06-07 20:31


"Troels Thomsen" <nej tak ...> wrote in message
news:4676c459$0$52105$edfadb0f@dread11.news.tele.dk...

[8<8<8<]
> Hvis du rigtigt skal allokere hukkomelse, vil det være pænt af dig at bede
> windows om det.

Hvorfor dog det ?
Man skal have meget specielle behov, hvis ikke standard C funktioner som
"malloc" virker _mindst_ lige så godt, med mindre man har nogle _meget_
specielle behov.

> Kan ikke lige huske navnet på funktionen.

GlobalAlloc

--
Venlig hilsen

Mogens Hansen



Jakob Bøhm (20-06-2007)
Kommentar
Fra : Jakob Bøhm


Dato : 20-06-07 10:54

Mogens Hansen wrote:
> "Troels Thomsen" <nej tak ...> wrote in message
> news:4676c459$0$52105$edfadb0f@dread11.news.tele.dk...
>
> [8<8<8<]
>> Hvis du rigtigt skal allokere hukkomelse, vil det være pænt af dig at bede
>> windows om det.
>
> Hvorfor dog det ?
> Man skal have meget specielle behov, hvis ikke standard C funktioner som
> "malloc" virker _mindst_ lige så godt, med mindre man har nogle _meget_
> specielle behov.
>
>> Kan ikke lige huske navnet på funktionen.
>
> GlobalAlloc
>
GlobalAlloc er en historisk funktion som nu kun giver mening i
forbindelse med low-level brug af API-erne til ClipBoard og DDE.

Den "nye" standardfunktion siden 1993 er HeapAlloc eller evt.
wrapperfunktionen LocalAlloc. malloc er ofter en wrapper rundt om
HeapAlloc.

P.S.

I Win32/Win64/WinCE er de eneste forskelle på et "konsolprogram" og et
"window-program" (uden S):

1. Hvis man starter et konsolprogram fra et andet sted end fra et åbent
konsolvindue, så bliver der åbnet et nyt konsolvindue som bliver
programmets stdin/stdout/stderr. Gør man det samme med et
window-program får programmet bare ikke nogen åben stdin/stdout/stderr.
Et window-program startet fra et konsolvindue HAR stdin/stdout/stderr.

2. Hvis man starter et window-program direkte fra et kommandoprompt
kommer promptet tilbage med det samme, mens der ventes på et
konsolprogram. I batchfiler ventes på begge programtyper.
Denne regel er ny fra og med 1994 (Windows 95 og NT 4.0, måske også NT
3.51).

3. Microsofts C-runtime antager pr. default at window-programmer skal
have deres kommandolinieparametre leveret til en Win16-agtig WinMain
funktion mens konsolprogrammer skal have deres leveret i en UNIX-agtig
main funktion. Dette er bare noget C-runtimen gør, internt starter
begge programtyper med en raw startupfunktion uden parametre som
initialiserer C-runtime, parser kommandolinien til et format som matcher
den forventede main/WinMain, lukker C-runtime ned og kalder ExitProcess.
Andre C-runtimes til Win32/Win64/WinCE har samme opførsel.



--
Jakob Bøhm, M.Sc.Eng. * jb@danware.dk * direct tel:+45-45-90-25-33
Danware Data A/S * Bregnerodvej 127 * DK-3460 Birkerod * DENMARK
http://www.netop.com * tel:+45-45-90-25-25 * fax tel:+45-45-90-25-26
Information in this mail is hasty, not binding and may not be right

Mogens Hansen (18-06-2007)
Kommentar
Fra : Mogens Hansen


Dato : 18-06-07 20:29


"Torben W. Hansen" <nospam@ins.com> wrote in message
news:46767afe$0$46969$edfadb0f@dread16.news.tele.dk...

[8<8<8<]
> Koden er et konsolprogram, der konverterer en sort/hvid PCX-fil til et
> binært format for til sidst at generere en INTEL-HEX-fil, som kan loades
> ned i en microcontroller. Billedet der er indeholdt i PCX-filen vises
> grafisk på PC'en, som eksekverer konsolprogrammet.

Så er det nok ikke rent konsolprogram

>
> Kildekoden gør brug af nogle Borland-specifikke biblioteker og headerfiler
> bl.a. conio.h, graphic.h samt alloc.h, string.h, stdio.h, stdlib.h ligesom
> der benyttes far-pointere og far-funktioner.

Skrive
#define far
så kan du komme videre, inden de sletter "far".

>
> Min tanke er at re-kompilere koden med en nyere compiler, sandsynligvis
> DEV C++, til et Windows konsolprogram.
>
> Det er noget tid siden at jeg har programmeret C til en PC og er ikke
> længere habil i standardbibliotekerne og de ændringer sproget har
> undergået.
>
> Jeg har importeret projektet i DEV C++ og får som forventet en række fejl
> og warnings, bl.a. pga. "conio.h", "graphic.h" samt far-declarationer.

Det lyder som noget der er skrevet med BGI (Borland Graphic Interface)

Prøv at kigge på
http://www.cs.colorado.edu/~main/cs1300/doc/bgi/bgi.html
Jeg kender det ikke, men måske kan det hjælpe dig

>
> // Spørgsmål:
>
> Findes der alternativer til "conio.h" og "graphic.h" som kan benyttes med
> DEV C++ ?
>
> Bruges stadig far-declarationer eller er disse afskaffet pga. lineær
> adressering i windows ?

De er afskaffet - heldigvis.

--
Venlig hilsen

Mogens Hansen



Torben W. Hansen (19-06-2007)
Kommentar
Fra : Torben W. Hansen


Dato : 19-06-07 07:30


"Mogens Hansen" <mogens_h@dk-online.dk> skrev i en meddelelse
news:4676dcf6$0$21924$157c6196@dreader1.cybercity.dk...
>
> Så er det nok ikke rent konsolprogram

Nej ikke helt, men næsten.


> Skrive
> #define far > så kan du komme videre, inden de sletter "far".

Definer far til "ingenting" - det var snedigt



> Det lyder som noget der er skrevet med BGI (Borland Graphic Interface)
>
> Prøv at kigge på
> http://www.cs.colorado.edu/~main/cs1300/doc/bgi/bgi.html

Det vil jeg da lige kikke på


>> Bruges stadig far-declarationer eller er disse afskaffet pga. lineær
>> adressering i windows ?
>
> De er afskaffet - heldigvis.

Det glæder også mig - mange tak for hjælpen

Med venlig hilsen
Torben W. Hansen



Søg
Reklame
Statistik
Spørgsmål : 177416
Tips : 31962
Nyheder : 719565
Indlæg : 6407862
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste