Upajmo, da ste do zdaj že videli mojo funkcijo v 64-bitnem sistemu Windows v najnovejši izdajiPC Pro. In morda ste nekaj tolažili iz mojih vetrovnih zagotovil, da vam ni treba preveč skrbeti za združljivost aplikacij. Skoraj vsa sodobna 32-bitna programska oprema bi se morala brezhibno namestiti in zagnati v 64-bitni izdaji sistema Windows.
No, seveda, kadar napišeš kaj takega, prosiš za težave.
kako anonimno poslati SMS nekomu
Seveda, ravno ko je naša septembrska številka pristala na kioskih, sem to odkrilPC ProNotranji odjemalec CMS je delal le - uganili ste - 32-bitni Windows. Poskus ustvariti nov pregled z mojega 64-bitnega namizja je povzročil le nejasno napako o manjkajoči tovarni razreda COM.
Višanje zastav
Malo kopanja je odkrilo težavo. Nekakšen poreden razvijalec je napisal popolnoma veljavno 32-bitno aplikacijo .NET, vendar je ni pozabil označiti kot 32-bitno kodo. 64-bitni Windows ga je zato zagnal v 64-bitnem načinu in povzročal napake, ko programska oprema ni mogla dostopati do 32-bitnih sistemskih virov, ki jih je pričakovala.
Na srečo je to enostavno odpraviti. Microsoftova CorFlags orodje ukazne vrstice - del .NET Framework - vam omogoča spreminjanje zastavic glave v izvršljivih datotekah, vključno s tisto, ki določa, kdaj je treba aplikacijo zagnati v 32-bitnem načinu. Nastavitev te zastavice za našo aplikacijo zbirke podatkov je bila preprosta stvar tipkanja CorFlags application.exe / 32bit +
Intukaj- ena 32-bitna aplikacija, ki popolnoma deluje v 64-bitnem sistemu Windows. Vredno poskusiti, če kdaj naletite na podobno težavo.
gumb za zagon v operacijskem sistemu Windows 10 je prenehal delovati
Katera mapa programskih datotek?
Medtem ko sem že na tej temi, je tu povezana težava, s katero smo se srečali že takrat, ko smo začeli pregledovati osebne računalnike s 64-bitno Vista. V tem primeru težavna programska oprema ni bila nihče drug kotPC Proresnična referenčna zbirka. Videti je bilo, da se je vse popolnoma namestilo, toda ko smo dejansko zagnali teste, smo prejeli vir, ni našel napak.
Težave sem se lotil s pomočjo nepogrešljivega SysInternalsa Nadzornik procesov koristnost in še enkrat se je izkazalo, da je razlaga usmiljeno preprosta (pravzaprav tako preprosta, da sem se počutil nekoliko nespametno, ker je nisem sam razdelal).
Različnih datotek ni bilo mogoče najti, ker je v 64-bitnem sistemu Windows mapa Program Files rezervirana samo za 64-bitne programe. 32-bitni programi se namestijo v mapo z imenom Program Files (x86). Naši testni skripti so vsebovali trdo kodirane poti, ki so propadale, ker naše 32-bitne aplikacije niso bile na običajnem mestu.
onemogoči sledilno ploščico, ko je miška priključena
Če naletite na takšno težavo, jo lahko enostavno odpravite tako, da odstranite izrecne sklice na C: Program Files in namesto tega uporabite% ProgramFiles% (ta pametna spremenljivka okolja bi se morala razrešiti na programske datoteke ali programske datoteke (x86), odvisno od ali je postopek, ki ga kliče, 64-bitni ali 32-bitni). Če poti ne morete spremeniti, je hitra in umazana rešitev ročno kopiranje 32-bitnih datotek v programske datoteke. Ko sem to naredil, so naša merila tekla brez težav.
Tako da imate 32-bitne aplikacijenarediteči v 64-bitnem operacijskem sistemu Windows ... včasih pa morate zaobiti nekaj predpostavk programerjev, da jih sprožite!