2009-02-26 3 views

답변

7

실제 크로스 플랫폼 방법이 없습니다. 프로세스, 응용 프로그램 등의 전체 개념은 운영 체제 특정 개념입니다. 특정 라이브러리를 사용하여 문제를 해결할 경우 실제로는 플랫폼이 다르지 않습니다.이 라이브러리가 지원하는 플랫폼으로 제한됩니다. 예 : Qt는 보편적 인 크로스 플랫폼이 아니며, 많은 플랫폼에서 실행되지만 모든 알려진 플랫폼 및 플랫폼에서는 실행되지 않습니다. Qt 솔루션은 작동하지 않습니다. 대부분의 유닉스 계열 플랫폼은 POSIX API를 지원하며 POSIX API는 POSIX API를 지원합니다. POSIX API를 사용하면 Linux, BSD, Mac OS X, Solaris 및 유사한 OS에서 작동합니다. 하지만 Windows에서는 작동하지 않습니다. Microsoft는 POSIX 지원을 중단하기로 결정했지만 Cygwin은 Windows에 POSIX 지원을 다시 제공합니다 (Cygwin은 Windows 위에 완전한 Linux glibc API를 에뮬레이션합니다). 문제는 POSIX조차도 실제로 ps와 같은 POSIX 도구가 프로세스 정보를 얻는 방법이 리눅스 시스템에서 BSD 시스템과 완전히 다른 방식으로 문제를 해결할 수있는 기능 세트를 제공하지 않는다는 것입니다.

두 번째 문제는 당신이 "집중력"을 말하고 있다는 것입니다. 초점은 응용 프로그램에 적용되지 않는 것입니다. UI가없고 창문이없는 배경 응용 프로그램은 "초점"을 가질 수 없습니다. 그러한 애플리케이션에 "초점을 맞추는"것은 무엇을 의미합니까? 따라서 실행중인 응용 프로그램 목록에 관심이 없지만 창을 갖고 있으며 창에 포커스가있는 UI 응용 프로그램 목록에 관심이 있습니다. 완전히 다른 것. Windows 시스템은 다른 플랫폼간에 훨씬 더 다르고 POSIX는 UI를 모두 무시합니다.

질문에 Visual C++ 태그가 있으므로 Visual C++가 Windows 전용이므로 크로스 플랫폼에서 코드를 실제로 사용해야하는 방법은 무엇입니까? 지원되는 모든 플랫폼에 대해 다른 코드를 작성하는 것보다 더 나은 솔루션이 있는지 의심 스럽기 때문에 어떤 플랫폼을 실제로 지원하려고합니까 (그에 따라 질문을 업데이트하십시오).

1

첫 번째 : 응용 프로그램에 포커스가 없습니다. 창문 않습니다. 둘째, 일부 창은 포커스를받지 않습니다. 그래서 나는 그것이 문자 적으로 가능하다고 생각하지 않는다.

관련 문제