Nu har du förhoppningsvis sett min funktion på 64-bitars Windows i den senaste utgåvan avPC Pro. Och kanske fick du lite tröst från min luftiga försäkringar att du inte behöver oroa dig för mycket för applikationskompatibilitet. Nästan all modern 32-bitars programvara bör installeras och köras felfritt på en 64-bitarsversion av Windows.
Naturligtvis, när du skriver något liknande ber du om problem.
kan du slå upp personer på facebook utan konto
Visst nog, precis som septemberutgåvan landade på tidningskioskerna upptäckte jag detPC ProIntern CMS-klient fungerade bara på - du gissade det - 32-bitars Windows. Att försöka skapa en ny recension från mitt 64-bitars skrivbord gav bara ett dunkelt fel om en saknad COM-klassfabrik.
Flyger flaggorna
Lite grävning grävde upp problemet. Någon stygg utvecklare hade skrivit en helt giltig 32-bitars .NET-applikation, men hade försummat att flagga den som specifikt 32-bitars kod. 64-bitars Windows körde därför det i 64-bitarsläge, vilket orsakade fel när programvaran inte kunde komma åt de 32-bitars systemresurser som det förväntade sig.
Lyckligtvis är detta ett enkelt problem att fixa. Microsofts CorFlags kommandoradsverktyget - en del av .NET Framework - låter dig ändra rubrikflaggorna på körbara filer, inklusive den som anger när ett program måste köras i 32-bitarsläge. Att ställa in denna flagga för vår databasapplikation var en enkel fråga om att skriva CorFlags application.exe / 32bit +
Ochhär- en 32-bitars applikation som körs perfekt på 64-bitars Windows. Värt att prova om du någonsin stöter på ett liknande problem.
hur man byter spöke på snapchat
Vilken programfilmapp?
Medan jag är på ämnet, här är ett relaterat problem som vi stötte på när vi började granska datorer som kör 64-bitars Vista. I det här fallet var den besvärliga programvaran ingen annan änPC Proverklig riktmärkesvit. Allt verkade installera perfekt, men när vi faktiskt startade testerna fick vi resursen inte hittade fel.
Jag började spåra problemet med hjälp av SysInternals oumbärliga Process Monitor nytta, och än en gång, förklaringen visade sig vara barmhärtigt enkel (så enkelt, faktiskt att jag kände mig lite dum för att jag inte själv hade gjort det).
Olika filer hittades inte eftersom mappen för programfiler i 64-bitars Windows är reserverad endast för 64-bitarsapplikationer. 32-bitarsprogram installeras i en mapp med namnet Program Files (x86). Våra testskript inkluderade hårdkodade banor som misslyckades eftersom våra 32-bitarsapplikationer inte var på sin vanliga plats.
vilka enheter kan du sätta kodi på
Om du stöter på ett sådant problem kan du enkelt åtgärda det genom att ta bort uttryckliga referenser till C: Program Files och istället använda% ProgramFiles% (den här smarta miljövariabeln bör lösa antingen Program Files eller Program Files (x86) beroende på om processen att anropa det är 64-bitars eller 32-bitars). Om du inte kommer till källan för att ändra banor är en snabb och smutsig lösning att manuellt kopiera dina 32-bitarsfiler till programfiler. När jag hade gjort det gick våra riktmärken utan problem.
Så där har du det: 32-bitars applikationerdokör på 64-bitars Windows ... men ibland behöver du arbeta runt några programmeringsantaganden för att få dem att gå!