To nie ma większego sensu. Chyba że oprogramowanie ma jakiś kod, który wyraźnie powoduje, że nie działa, jeśli nie działa na komputerze 64-bitowym. Wersja 32-bitowa działa dobrze w wersji 64-bitowej, problem występuje odwrotnie (wersja 64-bitowa w wersji 32-bitowej). Czy pojawia się komunikat o błędzie?
Czy to kod, który napisałeś (w którym to przypadku przepełnienie stosu jest miejscem, w którym należy zapytać - z kodem i komunikatami o błędach), czy jest to program, który uruchamiasz innej osoby? Pomogłoby to, jeśli dołączysz otrzymywane komunikaty o błędach.
Jaką odpowiedź techniczną chcesz? Prawdopodobnie możesz zmusić exe, aby zawsze uruchamiał 32-bitowy za pomocą kilku narzędzi SDK, ale wymaga to trochę pracy.
Prostą odpowiedzią jest uruchomienie z procesu 32-bitowego (np. Użycie %SystemRoot%\SYSWOW64\cmd.exedo uruchomienia).
Bardziej skomplikowane jest sprawdzenie, jaki to jest exe, a następnie samodzielne zmodyfikowanie go. Tłem tutaj jest zrozumienie, że skompilowany kod z języków, które bezpośrednio współpracują z interfejsami API systemu Windows są tworzone przez programistę w wersji 32-bitowej lub 64-bitowej. Nie można tego zmienić bez powrotu do kodu źródłowego.
Jednak coraz częściej aplikacje są pisane za pośrednictwem warstwy wirtualizacji, która ułatwia pisanie aplikacji. Istnieją dwa popularne: .NET i Java. Nie jestem pewien co do Javy, oprócz tego, że wymuszenie prawidłowej instalacji środowiska wykonawczego Java rozwiązuje problem.
W przypadku platformy .NET można użyć narzędzi SDK do:
Potwierdzić, że aplikacja jest „AnyCPU”: corflags myExe.exe. Użycie narzędzia z .NET SDK do odczytu nagłówków zestawu .NET, dla exe zwróci coś takiego:
+1 Ustawienie .Net AnyCPU było moją pierwszą myślą. Wystarczy nieświadomy programista, który nie określił poprawnie tego ustawienia. Wspaniale jest słyszeć, że istnieje sposób, aby to naprawić po skompilowaniu.
Próbowałem uruchomić go z %SystemRoot%\SYSWOW64\cmd.exei nie powiodło się w ten sam sposób - wyświetla komunikat o błędzie - a kiedy sprawdzam w TaskManager mój proces exe nie wyświetla się jako proces 32-bitowy
Próbowałem wszystkiego i nic nie działało. ale potem pomyślałem o przeniesieniu katalogu gta iv z plików programu C / (x86) do plików programu C / i to działa, ponieważ x86 jest dla aplikacji 32-bitowych (tak myślę), ale i tak działał.
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.