예, VS 2005로 컴파일 된 응용 프로그램은 Windows 98 및 Me에서 완벽하게 작동합니다. 나는 그들 중 몇 가지를 직접 실행했고, VS 2005를 계속 유지하고 정확히이 목적으로 설치했습니다. Version 2005 of the CRT redistributable는 트릭을 사용하면 멀티 바이트 문자 세트 (MBCS)에 대한 응용 프로그램을 컴파일해야합니다 것입니다까지 다시 윈도우 98
로 지원됩니다. 기본 프로젝트 설정 인 유니 코드로 컴파일 할 때 작동하지 않습니다. Windows 9x 플랫폼은 추가 도움없이 유니 코드를 지원하지 않습니다. 프로젝트 설정을 바꿀 수 있어야합니다.하지만 유니 코드를 사용하도록 코드를 작성한 경우 문제가 발생합니다.
이 때문에 유니 코드 빌드에서 선호하는 와이드 문자가 아닌 tchar.h
에 정의 된 일반 문자 유형과 함수를 사용해야합니다. 항상 TCHAR
유형 (또는 LPTSTR
또는 LPCTSTR
유형)을 사용하여 문자열을 정의하십시오. 조건은 wchar_t
또는 char
으로 조건에 따라 정의됩니다. 폭이 좁은 문자 또는 좁은 문자에만 해당하는 문자열 조작 함수가 아닌 _tcs...
으로 시작하는 문자열 조작 함수를 사용하십시오. 함수를 호출 할 때는 항상 A
또는 W
접미사로 끝나는 ANSI 또는 광범위한 특정 유형이 아닌 일반 typedef 된 버전을 호출해야합니다.
처음부터 해보지 않은 경우 돌아가서 해결해야 할 작업이 많을 수 있습니다. 이 경우 원래 지원되지 않는 레거시 Windows 9x 운영 체제에서 유니 코드 기능을 호출 할 수있는 추상화 계층을 제공하는 Microsoft Layer for Unicode on Windows 95/98/ME Systems을 살펴볼 수 있습니다.
유니 코드/MBCS 이외에는 Windows 98 시대에 Win32 API에 존재하지 않는 기능을 호출하지 않는다는 점만주의해야합니다. Microsoft가 Windows 98을 더 이상 지원하지 않기 때문에 온라인 MSDN 설명서에서 "최소 지원 클라이언트 버전"에 대해 더 이상 신뢰할 수 없습니다. SDK 문서의 모든은 지원되는 최소 버전이 현재 Windows 2000이고 그게 옳지 않다는 것을 당신은 알고 있습니다.전체 API는 W2K만큼 늦게 소개되지 않았습니다. 정확한 정보를 얻으려면 이전 버전의 SDK 설명서를 구해야합니다. VS 2005의 설치와 함께 무엇이 좋을 것입니다. 거기에있는 정보는 최소한 Win 98까지 돌아가며, 95가 아니라면 (정확하게 기억하지 못합니다). 당신은 당신이 그들이 이 사용할 수, 동적 그들을 전화 각별히주의해야합니다 있습니다 새로운 시스템에서 실행 때 윈도우 98에서 다시 존재하지 않는 함수를 호출 할 인스턴스의
대신 응용 프로그램의 DLL 가져 오기 테이블 (일반적으로 링커가 자동으로 수행하는 작업)에 추가하는 것이 좋습니다. 즉, 함수 포인터를 직접 정의하고 LoadLibrary
및 GetProcAddress
함수를 사용하여 함수 포인터를 호출하는 것입니다. 재미 있지는 않지만 은 일을합니다.
또는 라이브러리를 "지연로드"(프로젝트의 속성 확인)하도록 링커를 구성 할 수 있습니다. 이 방법이 훨씬 편리하지만 분명히 만 대상 운영 체제에서 사용할 수있는 함수를 호출해야합니다. 그렇지 않으면 응용 프로그램이 중단됩니다.
어느 쪽이든 GetVersionEx
function은 현재 호스트 운영 체제에 대해 알아야 할 모든 정보를 알려주기 때문에 코드가 다른 경로를 사용할 수있는 경우 새로운 기능을 호출하거나 그렇지 않은 경우 이전 경로로 되돌릴 수 있습니다. 환경. 따라서 레거시 운영 체제에 대한 어느 정도의 지원이 적절한지를 유지하면서 새로운 시스템에서 새로운 기능을 지원할 수 있습니다. 이 작업이 올바르게 완료되면 코드베이스에 많은 if
문이 있습니다. :-)
Windows 98을 사용해야하는 진심 어린 애도 : –
Windows 98 ... 행운을 빌어 요. – Eddie
재배포 가능 항목을 설치해야합니다. 그렇습니다. 작동하면 작동합니다. 그렇지 않은 경우 MS는 지원되지 않는다고 알려줄 것입니다. –