Jeśli kiedykolwiek słyszałeś o zmianie rozszerzenia pliku z EXE na COM, być może zastanawiałeś się, czy był w stanie pracować tylko z kilkoma rzadkimi plikami, czy też działałby z prawie każdym posiadanym plikiem EXE. Dzisiejszy post z pytaniami i odpowiedziami dla SuperUser zawiera odpowiedź na pytanie zaciekawionego czytelnika.
Dzisiejsza sesja pytań i odpowiedzi jest dostępna dzięki uprzejmości SuperUser - części Stack Exchange, grupy witryn internetowych z pytaniami i odpowiedziami.
Pytanie
Czytnik SuperUser Royi Namir chce wiedzieć, czy rozszerzenia plików EXE można zawsze zastąpić rozszerzeniami COM ?:
Nasze oprogramowanie antywirusowe odmówiło mi skopiowania pliku EXE do folderu startowego systemu Windows 7 (na przykład calc.exe), ponieważ jest to plik EXE. Następnie zmieniłem rozszerzenie pliku z EXE na COM w pliku i mogłem łatwo skopiować go do folderu bez problemów (bardzo profesjonalnie).
Oczywiście calc.com działa tak samo dobrze jak calc.exe, nad czym zacząłem się zastanawiać. Kiedy program z rozszerzeniem pliku EXE nie będzie działał po zmianie rozszerzenia na COM? Prawie każdy plik EXE, który sprawdziłem, działał. Bardzo chciałbym poznać powody „dlaczego i dlaczego nie” w tej sprawie.
Czy rozszerzenia plików EXE zawsze można zastąpić rozszerzeniami COM?
Odpowiedź
Współpracownik SuperUser Math Man ma dla nas odpowiedź:
Ma to związek z wewnętrznym formatem pliku. Pierwotnie pliki COM były prostymi obrazami pamięci, a pliki EXE miały wiele powiązanych z nimi nagłówków. W rezultacie nie można było ich zmienić.
W miarę upływu czasu i musieli uczynić rzeczy wstecznie kompatybilnymi, Microsoft zmienił to tak, aby system operacyjny sprawdzał sam plik, aby określić, jakiego typu jest to plik zamiast rozszerzenia. W rezultacie po uruchomieniu pliku o zmienionej nazwie system Windows całkowicie ignoruje rozszerzenie.
Odwiedź poniższe linki, aby uzyskać bardziej szczegółowe i obszerne wyjaśnienie.
Jaka jest różnica między .com, .exe i .bat? [StackOverflow]
Jaka jest różnica między rozszerzeniami COM i EXE? [Microsoft Developer Blog]
Masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych zaawansowanych technicznie użytkowników Stack Exchange? Sprawdź cały wątek dyskusji tutaj .