Dúfajme, že ste moju funkciu v 64-bitovom systéme Windows už videli v najnovšom vydaníPC Pro. A možno ste si odvodili určité pohodlie z mojich sviežich záruk, že sa nemusíte príliš starať o kompatibilitu aplikácií. Takmer všetok moderný 32-bitový softvér by sa mal bezchybne nainštalovať a spustiť v 64-bitovej edícii systému Windows.
Samozrejme, vždy, keď niečo také napíšete, žiadate o problémy.
prenášať súbory z jedného účtu Disku Google do druhého
Iste, práve keď naše septembrové vydanie pristávalo na novinových stánkoch, zistil som toPC ProInterný klient CMS pracoval iba na - uhádli ste - 32-bitových Windows. Pokus o vytvorenie novej recenzie z môjho 64-bitového desktopu priniesol iba nejasnú chybu o chýbajúcej továrni triedy COM.
Plávanie pod vlajkami
Problém vykopalo malé kopanie. Niektorí nezbední vývojári napísali perfektne platnú 32-bitovú aplikáciu .NET, ale zabudli ju označiť ako konkrétne 32-bitový kód. 64-bitový systém Windows ho preto spúšťal v 64-bitovom režime, čo spôsobovalo chyby, keď softvér nemohol získať prístup k očakávaným 32-bitovým systémovým prostriedkom.
Našťastie je to ľahký problém vyriešiť. Microsoft CorFlags nástroj príkazového riadku - súčasť .NET Framework - umožňuje upravovať príznaky hlavičiek na spustiteľných súboroch vrátane toho, ktorý určuje, kedy je potrebné aplikáciu spustiť v 32-bitovom režime. Nastavenie tohto príznaku pre našu databázovú aplikáciu bolo jednoduché CorFlags application.exe / 32bit +
Atu- jedna 32-bitová aplikácia fungujúca perfektne na 64-bitovom systéme Windows. Vyskúšajte, ak sa niekedy stretnete s podobným problémom.
Ako zistiť, či ste zablokovaní v skupine
Ktorý priečinok Program Files?
Keď už som pri tejto téme, tu je súvisiaci problém, s ktorým sme sa stretli späť, keď sme začali kontrolovať počítače so 64-bitovým systémom Vista. V tomto prípade nebol problémovým softvérom nikto iný akoPC Proreferenčný balík v reálnom svete. Zdá sa, že sa všetko nainštalovalo perfektne, ale keď sme skutočne spustili testy, dostali sme zdroj, nenašli sa chyby.
Pustil som sa do sledovania problému pomocou nevyhnutného nástroja SysInternals Monitor procesu užitočnosť a opäť sa vysvetlenie ukázalo ako milosrdne jednoduché (v skutočnosti také jednoduché, že som sa cítil trochu hlúpo, že som to nevypracoval sám).
Rôzne súbory sa nenašli, pretože v 64-bitovom systéme Windows je priečinok Program Files vyhradený iba pre 64-bitové aplikácie. 32-bitové programy sa inštalujú do priečinka s názvom Program Files (x86). Naše testovacie skripty obsahovali pevne zakódované cesty, ktoré zlyhali, pretože naše 32-bitové aplikácie neboli na svojom obvyklom mieste.
ako zablokovať súkromné číslo
Ak narazíte na problém, ako je tento, môžete ho ľahko vyriešiť odstránením explicitných odkazov na C: Program Files a použitím% ProgramFiles% (táto inteligentná premenná prostredia by sa mala vyriešiť na Program Files alebo Program Files (x86) v závislosti na či je proces jeho volania 64-bitový alebo 32-bitový). Ak sa nemôžete dostať k zdroju, aby zmenil cesty, rýchlym a špinavým riešením je manuálne skopírovať 32-bitové súbory do Program Files. Len čo som to urobil, naše referenčné hodnoty prebehli bez problémov.
Takže to tu máte: 32-bitové aplikácierobiťbežať na 64-bitovom systéme Windows ... ale niekedy je potrebné vyriešiť niekoľko predpokladov programátora, aby ste ich mohli spustiť!