문제

기본으로 작성된 프로젝트가 있습니다. 정확한 이유는 확실하지 않지만 FAT-16 파일 시스템에서 실행되는 경우를 제외하고는 앱이 작동하지 않습니다.

오히려이 앱을 최신 OS (Vista/XP)로 다시 작성하는 대신 지원할 환경을 설정하려고 노력하고 있습니다.

어떤 종류의 코드 변경 (기본 코드로) 또는 FAT-16 "에뮬레이터"(그러한 일이 존재하는 경우)를 통해 XP/Vista에서 이와 같은 앱을 얻는 방법을 아는 사람이 있습니까?

도움이 되었습니까?

해결책

a를 통해 실행 해보겠습니다 DOSBOX:

Dosbox는 Intel X86 PC를 에뮬레이션하며, Microsoft Windows XP, Windows와 같은 최신 PC 및 운영 체제에서 실행할 수없는 많은 오래된 MS-DOS 애플리케이션을 실행하는 데 필요한 사운드, 그래픽, 마우스, 조이스틱, 모뎀 등으로 완성됩니다. Vista, Linux 및 Freebsd

(그들로부터 위키)

나는 지금 몇 년 동안 그것을 사용합니다. 좋고 안정적이며 매우 강력합니다. 라이브를 더 쉽게 만들기 위해 여러 타사 Guis가 있습니다.

다른 팁

이미 제안 된 바와 같이 앱을 가상화 된 환경에서 살리게 유지하는 것 외에는 가장 먼저해야 할 일은 알아내는 것입니다. 코드는 FAT-16이 필요합니다.

앱 (또는 런타임)이 특히 악한 경우 FAT-16 요구 사항은 운영 체제를 우회하여 직접 디스크 I/O를 수행하려는 사실에서 비롯 될 수 있습니다. 기본 코드 자체가 해당 스턴트를 가져 오려고하는 경우, 많은 전화, 엿보기, 찌르기 또는 가끔 I/O 루틴의 내용 및 외부 진술을 볼 수 있습니다. 런타임이 무엇인지 결정하는 것은 더 어렵습니다. Microsoft, DOS 기반, 너무 고대가 아닌 (예 : Gwbasic 또는 Quickbasic/PD) 또는 Windows 기반은 괜찮습니다.

어쨌든, 앱이나 런타임이 직접 디스크 I/O를 시도하는 경우, 당신은 잃어 버릴 것입니다 : 광범위하고 재 작성과 같은 코드 변경없이 최신 OS에서 작업을 수행하는 것은 거의 불가능합니다.

앱이 입력 및 출력을 위해 일반 기본 시설을 사용하는 경우 (예 : #1에 대해 "열린"파일 ") 런타임이 일반 OS 인터페이스를 사용하는 경우 FAT-16에서만 작동하는 가장 큰 이유는 긴 파일 이름에 의해 혼란스러워집니다.

가장 먼저 시도하는 것은 짧은 이름 (예 : c : myapp)의 디렉토리에 앱을 넣고 다음에 어떤 일이 일어나는지 보는 것입니다. 그렇지 않으면 아마도 효과가있을 수 있습니다. 그렇지 않으면 기본 코드를 밟아 무슨 일이 일어나고 있는지 파악할 수 있어야합니다 (디버거가 런타임 환경의 일부라고 가정 할 수 있습니다).

앱이 실행되는 정확한 통역사/컴파일러에 대한 자세한 정보가 없으면 질문에 더 자세히 대답 할 수 없습니다. 지금까지 답변이 도움이되지 않으면이 정보를 포함시키기 위해 질문을 편집 할 수 있습니다.

Run an older version of Windows in a VMWare virtual machine, itself running in a modern OS.

Run it from a flash, zip drive or whatever removable media you got.
Windows XP formatted a 1GB usb flash drive as FAT with no problems, no additional tools were nessesary.
Besides, if the application is really evil, you thus, hopefully, constrain its evilness by the boundaries of the drive.

Depending on the Environment: It should still be possible to create Fat-16 Filesystems on modern OS, you may just need additional Tools like Acronis DiskDirector of even some Linux' fdisk Variant.

Just keep in mind that FAT-16 is limited to a partition Size of 2 GB.

But as said before: Best to find out WHY. Sounds like some sort of WTF-Copy-Protection.

I second @eugensk00's suggestion, we have some slightly wacky instrument software which won't save to a NTFS hard disk but will save to a small memory stick (1GB)...

You might be able to import the code directly into VB.NET (although it would almost certainly require some modifications). You could then replace the original app's file IO calls (which are almost certainly your problem) with VB.NET calls, getting you out of the FAT16 problem.

Also note that some old-school programs first check to see if there is enough disk space before writing files, resulting in wacky issues if the drive is so big that it overflows the 16-bit counter it is apparently using. (If that's the case, then it'll either work, or not work, depending on the nature of the overflow).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top