Hoved Annen Hvordan få vanskelige 32-bits apper til å fungere på 64-biters Windows

Hvordan få vanskelige 32-bits apper til å fungere på 64-biters Windows



win7-rc-desk-150x150Nå har du forhåpentligvis sett funksjonen min på 64-biters Windows i den siste utgaven avPC Pro. Og kanskje fikk du litt trøst fra mine luftige forsikringer om at du ikke trenger å bekymre deg for mye for applikasjonskompatibilitet. Nesten all moderne 32-biters programvare skal installeres og kjøres feilfritt på en 64-biters utgave av Windows.

Hvordan få vanskelige 32-bits apper til å fungere på 64-biters Windows

Vel, selvfølgelig, når du skriver noe sånt, ber du om problemer.

rykk kan du se hvem som ser på

Visst nok, akkurat da septemberutgaven vår havnet på aviskioskene, oppdaget jeg detPC ProDen interne CMS-klienten fungerte bare på - du gjettet det - 32-biters Windows. Å prøve å lage en ny anmeldelse fra 64-biters skrivebordet ga bare en uklar feil om en manglende COM-klassefabrikk.

Å flagge flaggene

Litt graving avdekket problemet. Noen frekke utviklere hadde skrevet et perfekt gyldig 32-bit. NET-program, men hadde forsømt å markere det som spesifikt 32-biters kode. 64-biters Windows kjørte den derfor i 64-biters modus, og forårsaket feil når programvaren ikke fikk tilgang til de 32-biters systemressursene den forventet.

Heldigvis er dette et enkelt problem å fikse. Microsoft CorFlags kommandolinjeverktøy - en del av .NET Framework - lar deg endre topptekstflaggene på kjørbare filer, inkludert den som spesifiserer når et program må kjøres i 32-bitersmodus. Å sette dette flagget for databaseapplikasjonen var et enkelt spørsmål om å skrive CorFlags application.exe / 32bit +

Ogher- ett 32-bits program som kjører perfekt på 64-biters Windows. Verdt å prøve hvis du noen gang får et lignende problem.

sjekk om telefonen din er ulåst

Hvilken programfilmappe?

Mens jeg er om emnet, er det et relatert problem vi kom inn i da vi begynte å gjennomgå PCer som kjørte 64-biters Vista. I dette tilfellet var den plagsomme programvaren ingen ringere ennPC Provirkelig referansesuite. Alt så ut til å installere perfekt, men da vi faktisk startet testene, mottok vi ikke ressurser.

Jeg begynte å spore problemet ved hjelp av SysInternals 'uunnværlige Prosessovervåker nytten, og nok en gang viste forklaringen seg å være barmhjertig enkel (så enkel, faktisk at jeg følte meg litt tåpelig for ikke å ha utarbeidet det selv).

Ulike filer ble ikke funnet fordi programfiler-mappen på 64-biters Windows er reservert kun for 64-biters applikasjoner. 32-biters programmer installeres i en mappe som heter Program Files (x86). Testskriptene våre inkluderte hardkodede baner som mislyktes fordi 32-bits applikasjonene ikke var på vanlig sted.

bror mfc-8910dw holder fast

Hvis du støter på et problem som dette, kan du enkelt fikse det ved å fjerne eksplisitte referanser til C: Program Files og i stedet bruke% ProgramFiles% (denne smarte miljøvariabelen skal løse enten til Program Files eller Program Files (x86), avhengig av om prosessen med å kalle den er 64-bit eller 32-bit). Hvis du ikke kommer til kilden for å endre banene, er en rask og skitten løsning å kopiere 32-biters filer manuelt til programfiler. Når jeg hadde gjort dette, kjørte våre referanser uten problemer.

Så der har du det: 32-biters applikasjonergjørekjør på 64-biters Windows ... men noen ganger må du omgå noen forutsetninger for programmerere for å få dem i gang!

Interessante Artikler