Toon posts:

[C++] Too Much Global Data

Pagina: 1
Acties:

Verwijderd

Topicstarter
Dag,

Nog steeds ben ik bezig met het aanpassen van een oud TC++ project.
Het gaat hier om een snel geprogrammeerd programma die iets uitgebreidt moet worden.

De belangrijkste aanpassing in het programma is dat een datatype long, vervangen moest worden door een datatype dat uit twee longs bestaat.
Dit is gelukt, echter met een probleempje.

Het probleem was dat alle structs gedefinieerd en gedeclareerd worden in een aantal bestanden, maar allen global.
Nu een aantal van deze structs zijn uitgebreidt van long naar mijn eigen datatype longer (bestaande uit twee longs dus), geeft het de foutmelding: too much global data defined in file.

Niet handig

Het project heeft een klein beetje haast, waardoor uitgebreide code veranderingen niet erg gewenst zijn.

Instellingen proberen aan te passen:
Overlay dos al geprobeerd, verschillende geheugenmodellen: van medium tot huge. Maar altijd treden er wel fouten op. Meestal bovenstaande.
Ook veel andere instellingen geprobeerd maar niets lijkt te helpen.

Iemand veel ervaring met soortgelijke problemen? het gaat dus om een DOS programma die eerst liep met de instellingen: standard dos, model large. Maar na de conversie niet meer.

Suggesties, mogelijke instellingswijzigingen of stukjes voorbeeldcode om dit probleem op te lossen zijn zeer zeer welkom!

bvd

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12:02

.oisyn

Moderator Devschuur®

Demotivational Speaker

volgens mij zit je gewoon tegen je compiler limits aan, en de enige manieren om dat op te lossen zijn overschakelen naar een andere compiler, of minder global data definieren :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 18:33
Enige manier is minder global data gebruiken.

Als je je global data verdeelt over meerdere units, kun je er misschien mog onderuit komen als het een limiet per unit betreft.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Verwijderd

farlane schreef op 29 October 2003 @ 17:02:
Enige manier is minder global data gebruiken.

Als je je global data verdeelt over meerdere units, kun je er misschien mog onderuit komen als het een limiet per unit betreft.
Dat denk ik niet, want als je dan het zwikkie samenvoegt, ben ik bang dat het geheel nog steeds over je datagroep limiet heen gaat. Maar dit weet ik niet zeker, ik heb dit nog nooit meegemaakt. Vermoedelijk is die code niet al te clean :)

Heb je niet ergens een huge globale array staan a la float[10000], die je zou kunnen veranderen naar dynamische allocatie op het moment dat je het echt nodig hebt.

Verwijderd

Topicstarter
Het is een verschrikkelijke code..

Heb al vele vele mogelijkheden geprobeerd.
Maar veranderen van code kost zo ontzettend veel tijd..

Denk dat het beter is om het hele ding te herschrijven, leuke opdracht, maar deadline komt daarmee niet uit :/

iemand een ander idee? conversie van c++ (dus niet c) naar java ofzo? het is een dosproggie, maar dat hoeft niet per se.
Naar pascal conversie misschien?
Zou toch leuk zijn als de wijziging ingevoerd kan worden op tijd.

Als ik een aantal methoden/data eruit sloop en in classes declareer gebeurt er niets eigenlijk, als ik data dynamisch maak dan merk je eveneens geen veranderingen.

zijn r nog echte C++ experts met verstand van conversies?
of geheugenproblemen onder dos?

alle hulp is welkom

[ Voor 66% gewijzigd door Verwijderd op 31-10-2003 14:34 ]


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 18:33
Verwijderd schreef op 31 oktober 2003 @ 14:27:
Het is een verschrikkelijke code..
Dat is code van iemand anders altijd ;)

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Verwijderd

Topicstarter
In dit geval schaamde de programmeur zich zelfs voor de code :D

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12:02

.oisyn

Moderator Devschuur®

Demotivational Speaker

iemand een ander idee? conversie van c++ (dus niet c) naar java ofzo? het is een dosproggie, maar dat hoeft niet per se.
is het niet handiger om gewoon een andere compiler te gaan zoeken?

Check bijvoorbeeld watcom C++ of DJGPP, dat zijn beide 32bits-compilers voor DOS. Daarbij heb je dit soort problemen niet

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 18:33
Verwijderd schreef op 31 oktober 2003 @ 14:37:
In dit geval schaamde de programmeur zich zelfs voor de code :D
Heb ik altijd bij code van mezelf :)

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Verwijderd

Topicstarter
Ik ga dat es onderzoeken.. er is echter 1 probleempje..

er moet een library worden toegevoegd.. en die geeft foutjes bij compilatie naar een 32 bits omgeving.. Tenminste.. bijde borland versie..
watcom moet ik maar es proberen denkik

thanx

Verwijderd

Topicstarter
Zijn er conversieprogramma's o.i.d. voor borland naar watcom c++ code?
hij geeft nogal veel fouten

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 18:33
Verwijderd schreef op 31 oktober 2003 @ 15:06:
Ik ga dat es onderzoeken.. er is echter 1 probleempje..

er moet een library worden toegevoegd.. en die geeft foutjes bij compilatie naar een 32 bits omgeving.. Tenminste.. bijde borland versie..
watcom moet ik maar es proberen denk ik

thanx
Borland 5.0X is volgens mij een van de laatste versies die nog 16 Bit DOS aankan. ( Maar daar wil je ook niet mee werken )

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Verwijderd

Topicstarter
wil wel, want bc5 is grote broer van turbo c.. maar daar doet ie t zelfde..

hebnu watcom c (open..) en het ziet er leuk uit, maar uiteraard werkt niet alles, dus was ik benieuwd of iemand nog conversieutilities of tips heeft voor conversie van borland naar watcom code

Verwijderd

Probeer 't eens met de Watcom C compiler,
dan heb je gewoon flat-mode en ben je van al dat geleuter af...

Edit:
Stupid, vorige post niet gezien.
Wat gaat er mis dan ?

[ Voor 26% gewijzigd door Verwijderd op 31-10-2003 20:27 ]

Pagina: 1