2010-02-17 1 views
3

wxWdgets는 모든 주요 Windows 버전에 대한 지원을 포함하는 크로스 플랫폼 라이브러리이지만 wxWidgets 설명서에서 이식성에 대해 언급하는 곳을 찾을 수는 없습니다 MSW (windows) wxWidgets 라이브러리 빌드 다른 창 버전에 걸쳐. wx 함수를 제외하고 내 핵심 애플 리케이션이 wxWidgets 라이브러리의 단일 버전에 대해 정적으로 링크하면 Win2K, XP 및 Windows 2000에서 실행되는 바이너리를 생성한다는 점에서 내 핵심 애플 리케이션이 바닐라 C++ (그리고 아마도 모든 플랫폼에서 사용할 수있는 win32 apis의 최소 공통 분모)를 사용한다고 가정합니다. 비스타, 윈도우 7? 그 라이브러리는 win2K ("최소한의 기능을 갖춘 플랫폼"?)에 빌드해야합니까, 아니면 XP에서도 빌드 할 수 있습니까? 모든 힌트 또는 포인터를 부탁드립니다!단일 wxWidgets MSW 응용 프로그램 바이너리가 Win2K, XP, Vista 및 7에서 호환됩니까?

답변

4

원하는 모든 OS 버전에서 응용 프로그램을 빌드 할 수 있습니다. 다른 Windows 버전과의 응용 프로그램 호환성에는 영향을 미치지 않습니다. 다른 OS에서도 Windows 응용 프로그램을 크로스 컴파일 할 수 있습니다.

중요한 것은 응용 프로그램이 참조하는 API 호출을 선택하는 것입니다. 로드 타임에 링크 된 모든 함수는 OS에 있어야하며 지연된 라이브러리 또는 API 함수는 응용 프로그램이 오류를 정상적으로 처리하는 한 호환성에 영향을주지 않습니다.

안정적인 wxWidgets 버전 2.8은 적어도 Windows 2000 및 모든 이후 버전 (비 유니 코드 라이브러리를 사용하는 경우 Windows 9X를 대상으로 할 수도 있음)과 호환되며, 사용할 수없는 모든 기능을로드합니다 Windows 2000 (XP와 함께 소개 된 테마 지원). 응용 프로그램은 실행되지만 Windows 2000에서는 작동하지 않는 것이있을 수 있습니다 (예 : 투명한 PNG).

개발 환경에서 부과되는 추가 최소 OS 버전 요구 사항이있을 수 있습니다. 예를 들어 최신 Visual C++ 버전에서는 이전 OS 버전에 C 런타임을 설치해야하며 지원되는 최소 버전이있을 수 있습니다. 그러나 이것은 프로그램에서 사용되는 wxWidgets와는 독립적입니다.

+0

유니크스 옵션으로 빌드하면 wxWidgets 유니 코드 실행 파일을 Win 9x에서 사용할 수도 있습니다. –

1

예, wx 바이너리는 XP-7 범위에서 이식 가능합니다. 유니 코드를 사용하지 않거나 MSLU를 사용하지 않는 경우에도 동일한 바이너리가 시스템에 95로 작성되어야합니다. 아무도 눈치 채지 않고 실제로 깨졌을 수도 있습니다.) wxWidgets는 모든 Windows 버전의 시스템 DLL에없는 함수, 즉 GetProcAddress()을 통해 동적으로 모든 함수를로드하고 이전 시스템에 적절한 대체 값을 사용합니다.

관련 문제