If-Koubou

Czy rozszerzenia plików EXE mogą zawsze zostać zastąpione przez COM?

Czy rozszerzenia plików EXE mogą zawsze zostać zastąpione przez COM? (Jak)

Jeśli kiedykolwiek słyszałeś o zmianie rozszerzenia pliku z EXE na COM, być może zastanawiałeś się, czy działa on tylko na kilku rzadkich plikach lub czy działa na prawie każdym pliku EXE, jaki masz. Dzisiejszy post z pytaniami i odpowiedziami dla SuperUser zawiera odpowiedź na ciekawe pytanie czytelnika.

Dzisiejsza sesja pytań i odpowiedzi przychodzi do nas dzięki uprzejmości SuperUser - poddziału Stack Exchange, społecznościowego forum z pytaniami i odpowiedziami.

Pytanie

Czytnik SuperUser Royi Namir chce wiedzieć, czy rozszerzenia plików EXE można zawsze zastąpić plikami COM ?:

Nasze oprogramowanie antywirusowe odmówiło mi skopiowania pliku EXE do mojego folderu startowego Windows 7 (na przykład calc.exe), ponieważ jest to plik EXE. Następnie zmieniłem rozszerzenie pliku z EXE na COM na pliku i mogłem z łatwością skopiować go do folderu bez problemów (bardzo profesjonalnie).

I oczywiście calc.com działa równie dobrze jak calc.exe, co mnie zastanawia. Kiedy program z rozszerzeniem pliku EXE nie będzie działać, gdy rozszerzenie zostanie zmienione na COM? Prawie każdy plik EXE, który sprawdziłem, zadziałał. Chciałbym poznać powody "dlaczego i dlaczego nie" w tej sprawie.

Czy rozszerzenia plików EXE można zawsze zastąpić plikami COM?

Odpowiedź

Pomocnik SuperUser Math Man ma dla nas odpowiedź:

Ma to związek z wewnętrznym formatem pliku. Początkowo pliki COM były prostymi obrazami pamięci, a pliki EXE zawierały wiele nagłówków. W rezultacie nie można zmienić ich nazwy.

W miarę upływu czasu i musieli robić rzeczy kompatybilne z poprzednimi wersjami, Microsoft zmieniał je tak, aby system operacyjny sprawdzał sam plik, aby określić, jaki jest 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 wyczerpujące wyjaśnienie.

Jaka jest różnica między .com, .exe i .bat? [Przepełnienie stosu]

Jaka jest różnica między rozszerzeniami COM i EXE? [Blog programisty Microsoft]

Czy masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych użytkowników Stack Exchange, którzy znają się na technologii? Sprawdź cały wątek dyskusji tutaj.