Надяваме се, че досега сте виждали моята функция на 64-битов Windows в последния брой наPC Pro. И може би сте извлекли малко утеха от моите прохладни уверения, че не е нужно да се притеснявате твърде много за съвместимостта на приложенията. Почти целият съвременен 32-битов софтуер трябва да се инсталира и работи безупречно на 64-битово издание на Windows.
Е, разбира се, всеки път, когато пишете нещо подобно, питате за неприятности.
как да използвам всички ядра windows 10
Разбира се, точно когато нашият септемврийски брой кацна на будките, аз го открихPC ProВътрешният CMS клиент работи само върху - познахте - 32-битов Windows. Опитът да създам нов преглед от моя 64-битов работен плот доведе само до неясна грешка за липсваща фабрика за COM клас.
Развейте знамената
Малко ровене разкри проблема. Някакъв кофти разработчик беше написал напълно валидно 32-битово .NET приложение, но пренебрегна да го маркира като конкретно 32-битов код. Следователно 64-битовата Windows го работеше в 64-битов режим, причинявайки грешки, когато софтуерът не можеше да получи достъп до 32-битовите системни ресурси, които очакваше.
За щастие това е лесен за отстраняване проблем. Microsoft CorFlags инструмент за команден ред - част от .NET Framework - ви позволява да модифицирате заглавните знамена на изпълними файлове, включително този, който определя кога дадено приложение трябва да се изпълнява в 32-битов режим. Задаването на този флаг за приложението ни за база данни беше просто въпрос на въвеждане CorFlags application.exe / 32bit +
Итук- едно 32-битово приложение, работещо перфектно на 64-битов Windows. Заслужава си да опитате, ако някога срещнете подобен проблем.
кога създадох моя gmail акаунт
Коя папка с програмни файлове?
Докато съм по темата, ето свързан проблем, с който се сблъскахме, когато започнахме да преглеждаме компютри с 64-битова Vista. В този случай проблемният софтуер беше не друг, аPC Proреално сравнителен пакет. Изглежда, че всичко се инсталира перфектно, но когато реално стартирахме тестовете, получихме ресурс, не намерихме грешки.
Пристъпих към проследяването на проблема с помощта на SysInternals ’nuenvable Монитор на процеса полезност и за пореден път обяснението се оказа милостиво просто (всъщност толкова просто, че се почувствах малко глупаво, че сам не съм го разработил).
Различни файлове не бяха намерени, тъй като в 64-битовия Windows папката Program Files е запазена само за 64-битови приложения. 32-битовите програми се инсталират в папка с име Program Files (x86). Нашите тестови скриптове включваха твърдо кодирани пътища, които се проваляха, тъй като нашите 32-битови приложения не бяха в обичайното си местоположение.
как да изтеглите gif на Twitter
Ако срещнете проблем като този, можете лесно да го поправите, като премахнете изрични препратки към C: Program Files и вместо това използвате% ProgramFiles% (тази интелигентна променлива на средата трябва да се разреши или на Program Files, или на Program Files (x86) в зависимост от дали процесът, който го извиква, е 64-битов или 32-битов). Ако не можете да стигнете до източника, за да промените пътищата, бързо и мръсно решение е да копирате ръчно 32-битовите си файлове в програмни файлове. След като направих това, нашите показатели се задействаха без проблеми.
Ето го: 32-битови приложениянаправетеработи на 64-битов Windows ... но понякога трябва да заобиколите няколко предположения на програмиста, за да ги задействате!