Extra info juist tonen

Hoi Martijn,

M.i. ben jij ook erg goed bezig —) Het leuke van een opensource project (als Foondump) is dat iedereen een bijdrage aan het (eind)product zou kunnen leveren. Van de inspanning van de ene persoon kan een andere persoon weer verder op voortborduren.

Zelf gebruik ik Visual Studio (VS) versie 7.00. Als ik foondump wil compileren klik ik op foondump.dsw en dan laat hij het project foondump binnen. Bij versie VS 7.00 krijg je dan een Foondump.sln bestand welke je in het vervolg kan openen. Het compileren doe je met BUILD → Rebuild Solution in de GUI van VS. Je zou ook via een makefile kunnen compileren, maar dat doe ik haast nooit.

Tip:Om beetje vaardigheid te krijgen in het compileren zou je m.i. wat voorbeeld project-jes van http://www.codeproject.com/ kunnen proberen te compileren. Soms zijn VC project in een hogere versie (8 bijvoorbeeld) om deze dan te kunnen compileren wijzig ik vaak 8.00 in 7.00 in de “project file” (*.vcproj) van een project. Daarbij soms de bijbehorende *.sln file naar lager niveau brengen.

Wat ik ook vaak doe is View → Resource View → Rechtermuisknop → Properties. Je kan dan alle opties gaan doorlopen en wijzigen van een project. Denk hierbij aan het aankoppelen van include file directories en extra benodigde libraries.

Als je een nieuwe file wilt toevoegen in een project doe je dat in VC 7.0 met File → Add Existing Item → File die je wilt toevoegen.

Wat ik in het verleden moeilijk vond is om een nieuw project aan te maken. N.B. Een bestand project compileren zoals Foondump is m.i. niet moeilijk.

Ben ook “de hele dag” aan het prutsen. Ik leer daarbij veel van de programmeurs van andere projecten zoals Codeproject.

Met vriendelijke groet Jan Marco

Bedankt Jan Marco,

Op het werk kan ik kiezen uit drie smaken: VS6.0, 70 en 8.0, dus dat zit wel snor :smiley:

Ik had geen idee dat versie 7 en 8 ook c-programma’s kon bevatten. Zelf werk ik met VB in VS6.0 en C# in VS7.0 en VS8.0. Ik ga er morgen meteen mee aan de slag!

Allemaal bedankt voor alle informatie. Echt helemaal top !

Vriendelijke groet,
Martijn.

Edit: P.S. Zodra ik een aangepaste versie heb van foondump, test ik fs2005 nog een keer en mail ik het door naar rgj.

Project file en workspace staan in de subdirectory msvc :slight_smile:

Thanks,

Het compileren van foondump in VS2005 (8.0) is echt een fluitje van een cent :smiley:

Hij geeft wel wat waarschuwingen over deprecated (letterlijk ‘afgekeurde’) functies: strcpy, fopen en sprintf

Hiervoor zijn strcpy_s, fopen_s en sprintf_s in het leven geroepen. Ik negeer de opmerkingen, ik weet ook niet wat de gevolgen zouden zijn als je deze aanpast.

Verder zie ik bij compileren nog de volgende waarschuwingen:

Warning 18 warning LNK4217: locally defined symbol _calloc imported in function _zcalloc zlib.lib Warning 19 warning LNK4217: locally defined symbol _free imported in function _zcfree zlib.lib
Maar daar wordt ik niet wijzer van :?

Nou wilde ik hem op het werk testen en wat denk je: zit de cdfoongids als geinstalleerde versie op een cdrom-server. Duh, kan ik dus niet bij de installatie/data-bestanden :shock: Vanavond probeer ik het thuis wel even.

Hoi Martijn,

Foondump gebruikt een library om de ‘unzip’ routines aan te roepen. Gewoon even een project (Emule, filezilla, oid) pakken waar zlib.lib wordt aangemaakt en dan library in het project aankoppelen/kopieren.

Zoals ik de warning lees heeft de zlib.lib library nog de procedure _calloc nodig dus pakt hij de locally defined _calloc functie.

De vriendelijke groet Jan Marco

Ik wel: dan compileert het alleen nog onder Windows… :?

Lekker antwoord. :shock:
Ten eerste zit zlib.lib gewoon in de distributie (in de directory lib) en ten tweede duidt de melding er toch echt op dat die library al meegenomen wordt maar een conflict veroorzaakt.

Mijn vermoeden is dat dit komt door het gebruik van VS2005 met mijn Foondump05.dsw file voor Visual Studio 6.0. Daar zitten twee regels in waar onder meer /nodefaultlib:"msvcrt.lib" in staat. Die regel zorgt ervoor dat de runtime library niet twee keer wordt meegenomen (dat zou de genoemde link error veroorzaken).
Die library heet waarschijnlijk nu echter iets van msvcrt80.lib (of msvcrt70.lib) en dus ignored hij hem niet en neemt hem wel twee keer mee.

Oplossing: zoek even uit hoe die library tegenwoordig heet (staat waarschijnlijk in je build output window net voor de foutmelding) en verander de betreffende 2 regels in de .dsw file (Visual Studio afsluiten, dsw file in notepad openen, regels aanpassen, opslaan, Visual Studio weer starten) of doe het netjes via de project settings (maar dan moet je even zoeken, en het voor zowel debug als release doen) :slight_smile:

Ik heb de bug m.b.t. tag 72 uitgezocht.
Alle tags komen twee keer voor, eenmaal “laag” en eenmaal “hoog” (het hoogste bit is gezet, deze variant is 128 of 0x80 hoger dan de lage tag).
Bij “lage” tags is gewoon een string aanwezig, bij “hoge” tags wordt decodeToStringStore() aangeroepen. Van hoge tags wordt altijd het hoogste bit gereset, omdat het in de dump niet uitmaakt hoe de waarde gecodeerd was. Tag 200 en tag 72 zijn dus allebei als tag 72 in de dump terug te vinden.

De problematische tag was dan ook 200 en niet 72 (200 - 128 = 72). Tag 200 wordt om vage redenen alleen in pink gebruikt.

Welnu, er zijn een paar tags die naast decodeToStringStore() ook nog een tabel lookup moeten krijgen (met de functie lookupToStringStore()) Deze tags zijn apart in de code opgenomen. Daarbij was tag 200 (0xc8) vergeten, en dat was de bug.

De fix is als volgt: voeg in fd05-csv.c onder de regel

de volgende code toe:

case 0xc8: /* Plaatsnaam info record tabel 1 */ pc = getPtr(&s); i+= lookupToStringStore (buf+i, 1, &s); addToInfoRec (&ir, pc, (char)(m&0x7f)); break;

De plaatsnamen worden nu netjes gecodeerd.

Wanneer ik de PHP code van Relax heb gekregen zal ik een nieuwe release maken met deze fix en de nieuwe PHP code.

Hoi rgj,

Mooi dat je gevonden hebt waar het probleem zat. Ik stuur de php-code, maar wil graag dat het ook werkt. Kun je daarom de executable mailen of een dl-link aanbieden? Ik weet niet of er bijvoorbeeld in de plaatsnamen van white en pink nog een $ zit… Daar heb ik nu wat ‘nasty code’ voor gemaakt :frowning:

Als alternatief kun je ook een dump van de tabellen geven die je met de nieuwe foondump hebt gemaakt. Dat is mij om het even 8)

Als ik het zelf ga aanpassen, wordt het of morgenavond (als ik visual studio 6 kan vinden) en anders maandag op het werk. Voor een snelle afhandeling zou een linkje naar je executable wel helpen :wink:

Met vriendelijke groet,
Martijn.

P.S. Zeikerd? Ik? Mwoah, laat ik zeggen dat ik vanwege ervaringen op m’n werk er niet van houd om ‘dirty’ code op te leveren. Vooral als er nog wijzigingen komen op de tabellen. Maar wees gerust: op m’n werk ben ik nog erger :lol:

Hoi Relax,

Ik heb nu alleen een Linux binary en zit met hetzelfde probleem als jij: ik heb even geen zin om VS6 uit de kast te halen behalve om een complete release te maken… ik kan je wel vertellen dat de plaatsnamen van het type AMS$Amsterdam zijn.

Ik deel je mening over dirty code maar ik test alle code sowieso wel even.

Vooruit dan maar, op de gok een pm gestuurd met code.

Have fun :smiley:

Ok, gisteren Visual Studio 6 Enterprise geinstalleerd en foondump gecompileerd. De aanpassing van rgj lijkt prima te werken (vluchtig gecontroleerd).

Als je trouwens problemen hebt om Visual studio op Windows XP met SP2 te installeren, moet je het volgende even lezen. Mij heeft het in ieder geval geholpen…

[quote]> Has anyone found a way to install VC C++ 6.0 other than uninstalling

SP2? Thanks…

It’s a very frustrating issue, but I finally got it to work. Get
Exctrlst.exe from:

http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/exctrlst-o.asp

On my XP Pro SP2 everything was already enabled except for “PerfOS”
perfos.dll. Once I enabled that setup ran. I noticed though that the
setting wasn’t maintained after the reboot because of the Java install.
I had to enable it again and rerun setup.
[/quote]
In het kort: link volgen, programma downloaden, opstarten, perfos.dll in de lijst selecteren en ervoor zorgen dat het vinkje aan staat. C’est tout :slight_smile:

Hoi relax,

Bedankt voor de tip. Het lukte mij ook niet om Visual studio 7.00 te installeren op XP. Wel was mij eerder geluk om hem op mijn XP-ppc te installeren, blijkbaar zat bij de installatie toen geen SP2 op mijn ppc.

De vriendelijke groet Jan Marco