Mam nadzieję, że do tej pory widzieliście moją funkcję w 64-bitowym systemie Windows w najnowszym wydaniuPC Pro. Być może pocieszyłeś mnie moimi śmiałymi zapewnieniami, że nie musisz się zbytnio martwić o zgodność aplikacji. Prawie wszystkie nowoczesne programy 32-bitowe powinny bezproblemowo zainstalować się i działać w 64-bitowej wersji systemu Windows.
Cóż, oczywiście, kiedy piszesz coś takiego, prosisz o kłopoty.
jak zdetonować bomby samoprzylepne w gta 5 ps4
Rzeczywiście, właśnie wtedy, gdy nasz wrześniowy numer wylądował w kioskach, odkryłem toPC ProWewnętrzny klient CMS działał tylko na - zgadłeś - na 32-bitowym systemie Windows. Próba utworzenia nowej recenzji z mojego 64-bitowego pulpitu dała tylko niejasny błąd dotyczący brakującej fabryki klas COM.
Puszczanie flag
Trochę kopania odkryło problem. Jakiś niegrzeczny programista napisał doskonale poprawną 32-bitową aplikację .NET, ale zaniedbał oznaczenie jej jako specyficznie 32-bitowego kodu. Dlatego 64-bitowy system Windows uruchamiał go w trybie 64-bitowym, powodując błędy, gdy oprogramowanie nie mogło uzyskać dostępu do oczekiwanych 32-bitowych zasobów systemowych.
Na szczęście jest to łatwy problem do rozwiązania. Microsoft CorFlags narzędzie wiersza poleceń - część programu .NET Framework - umożliwia modyfikowanie flag nagłówków plików wykonywalnych, w tym tego, który określa, kiedy aplikacja ma być uruchamiana w trybie 32-bitowym. Ustawienie tej flagi dla naszej aplikacji bazodanowej było prostą sprawą wpisywania Aplikacja CorFlags.exe / 32bit +
Itutaj- jedna 32-bitowa aplikacja działająca doskonale na 64-bitowym systemie Windows. Warto spróbować, jeśli kiedykolwiek napotkasz podobny problem.
jak edytować podpis na tiktok
Który folder Program Files?
Skoro już o tym mowa, oto pokrewny problem, na który natknęliśmy się, gdy zaczynaliśmy sprawdzać komputery PC z 64-bitowym systemem Vista. W tym przypadku kłopotliwym oprogramowaniem był nie kto inny jakPC Prozestaw testów porównawczych w świecie rzeczywistym. Wydawało się, że wszystko działa idealnie, ale kiedy faktycznie uruchomiliśmy testy, otrzymaliśmy zasób nie znaleziono błędów.
Zacząłem śledzić problem z pomocą niezbędnego narzędzia SysInternals Monitor procesu użyteczność, i po raz kolejny wyjaśnienie okazało się miłosiernie proste (tak proste, że poczułem się trochę głupio, że sam tego nie rozpracowałem).
Nie znaleziono różnych plików, ponieważ w 64-bitowym systemie Windows folder Program Files jest zarezerwowany tylko dla aplikacji 64-bitowych. Programy 32-bitowe są instalowane w folderze o nazwie Program Files (x86). Nasze skrypty testowe zawierały zakodowane na stałe ścieżki, które kończyły się niepowodzeniem, ponieważ nasze aplikacje 32-bitowe nie znajdowały się w ich zwykłej lokalizacji.
najlepszy darmowy antywirus Windows 10 2017
Jeśli napotkasz taki problem, możesz go łatwo naprawić, usuwając jawne odniesienia do C: Program Files i używając zamiast tego% ProgramFiles% (ta sprytna zmienna środowiskowa powinna rozwiązać się do Program Files lub Program Files (x86) w zależności od czy wywołujący go proces jest 64-bitowy czy 32-bitowy). Jeśli nie możesz dostać się do źródła, aby zmienić ścieżki, szybkim i brudnym obejściem jest ręczne skopiowanie plików 32-bitowych do Program Files. Kiedy już to zrobiłem, nasze testy porównawcze działały bezproblemowo.
Więc masz to: aplikacje 32-bitowezrobićdziałają na 64-bitowym systemie Windows… ale czasami trzeba obejść kilka założeń programistów, aby je uruchomić!