Nu har du forhåbentlig set min funktion på 64-bit Windows i den seneste udgave afPC Pro. Og måske hentede du noget komfort fra mine bløde forsikringer om, at du ikke behøver at bekymre dig for meget om applikationskompatibilitet. Næsten al moderne 32-bit software skal installeres og køre fejlfrit på en 64-bit udgave af Windows.
Nå, selvfølgelig, når du skriver noget lignende, beder du om problemer.
hvordan man fortæller om grafikkort er ved at dø
Sikker nok, ligesom vores septemberudgave landede på aviskioskerne, opdagede jeg detPC Pro'S interne CMS-klient fungerede kun på - du gættede det - 32-bit Windows. Forsøg på at oprette en ny anmeldelse fra mit 64-bit desktop gav kun en uklar fejl om en manglende COM-klassefabrik.
Flyver flagene
Lidt grave gravede problemet. En fræk udvikler havde skrevet et perfekt gyldigt 32-bit .NET-program, men havde forsømt at markere det som specifikt 32-bit-kode. 64-bit Windows kørte det derfor i 64-bit tilstand og forårsagede fejl, når softwaren ikke kunne få adgang til de 32-bit systemressourcer, den forventede.
Heldigvis er dette et let problem at rette. Microsofts CorFlags kommandolinjeværktøj - en del af .NET Framework - giver dig mulighed for at ændre headerflagene på eksekverbare filer, inklusive den, der angiver, hvornår et program skal køres i 32-bit-tilstand. At indstille dette flag til vores databaseapplikation var et simpelt spørgsmål om at skrive CorFlags application.exe / 32bit +
Ogher- en 32-bit applikation, der kører perfekt på 64-bit Windows. Værd at prøve, hvis du nogensinde støder på et lignende problem.
hvordan man søger på facebook-siden
Hvilken programfilmappe?
Mens jeg er om emnet, er der et relateret problem, som vi stødte på tilbage, da vi begyndte at gennemgå pc'er, der kørte 64-bit Vista. I dette tilfælde var den besværlige software ingen ringere endPC Prorealtids benchmark suite. Alt syntes at installere perfekt, men da vi faktisk startede testene, modtog vi ikke ressourcer, der ikke fandt fejl.
Jeg begyndte at spore problemet ved hjælp af SysInternals uundværlige Process Monitor nytte, og endnu en gang viste forklaringen at være barmhjertigt enkel (så enkel, faktisk, at jeg følte mig lidt tåbelig for ikke at have udarbejdet det selv).
Der blev ikke fundet forskellige filer, fordi mappen Program Files på 64-bit Windows kun er forbeholdt 64-bit applikationer. 32-bit programmer installeres i en mappe ved navn Program Files (x86). Vores testskripter indeholdt hardkodede stier, der mislykkedes, fordi vores 32-bit applikationer ikke var på deres sædvanlige placering.
hvordan man tilføjer roller til en diskordsserver
Hvis du støder på et problem som dette, kan du nemt rette det ved at fjerne eksplicitte referencer til C: Program Files og i stedet bruge% ProgramFiles% (denne kloge miljøvariabel skal løse enten til Program Files eller Program Files (x86) afhængigt af om processen med at kalde det er 64-bit eller 32-bit). Hvis du ikke kan komme til kilden for at ændre stierne, er en hurtig og beskidt løsning manuelt at kopiere dine 32-bit filer til programfiler. Når jeg havde gjort dette, kørte vores benchmarks uden problemer.
Så der har du det: 32-bit applikationergørkør på 64-bit Windows ... men nogle gange er du nødt til at omgå et par programmerantagelser for at få dem i gang!