2010-12-01 5 views
3

프로그램에 대한 두 가지 옵션을 고려하고 있습니다. 비동기 IO를 지원하는 C++ 또는 비동기 NIO를 사용하는 Java. 나는 자바가 시스템이 자바 런타임을 가지고있는 한 이식성이 있다는 것을 알고있다. 내가 부스트와 C + +를 사용하는 것을 선호하지만, 만약 내가 쓰는 프로그램이 다른 윈도우 머신으로 포팅되어 여전히 실행될 수 있는지 확실하지 않다. 런타임에 프로그램에 필요한 모든 종속성을 보장하려면 어떻게해야합니까? windows.h, C++ 2003 표준 및 Boost 라이브러리 만 사용하도록 계획하고 있습니다.부스트 윈도우 프로그램은 다른 윈도우 시스템과 호환됩니까?

답변

3

C++ 표준 라이브러리 (그리고 CRT, 필독적이라고 생각한다면)를 사용하는 한, 코드는 쉽게 포팅 될 것입니다.

str*_s 기능 (예 : here)과 같은 Microsoft CRT 확장자를 사용하지 않도록하십시오. MSDN에서는 이러한 정보를 비표준 정보로 잘못 표시하지 않습니다.

또한 Visual C++ v10의 C++ 0x 기능을 사용하여 단기간에 이식성을 극대화하거나 사용하려는 기능이있는 다른 컴파일러를 확인하십시오.

주의 :windows.h 중에서 많은 항목을 사용하면 휴대 성이 떨어지고 필요한 작업이 늘어납니다. 나중에 포트 할 것으로 예상되는 경우 가능한 한 많이 사용하지 마십시오. 거기에서 필요한 것이 있으면 필요에 따라 고유 한 헤더 및 코드 파일을 포트 지정시 변경해야합니다. 다른 OS로 이식 할 때 코드의 하위 집합 만 살펴 봐야합니다.

+0

나는 그가 자신의 개발 기계 외에 다른/Windows/컴퓨터에서 자신의 응용 프로그램을 실행하는 것에 대해 질문하고 있다고 생각합니다. –

+0

@ Zach - 다른 답변에 대한 의견을 참조하십시오. 다른 OS가 나중에 타겟팅되는 경우 100 % 명확하지 않지만 지금은 문제를 제기하고 싶습니다. –

6

부스트와 CRT는 실행 파일에 정적으로 링크 될 수 있으므로 외부 종속성은 전혀 없습니다.

+0

오, 부스트 라이브러리가 이식 가능하기 때문에, MacOS X에서 XCode의 실행 파일을 정적으로 링크하고 빌드하려면 Windows에서 실행해야합니다 (링크하기 전에 비 휴대용 라이브러리가 처리되는 한) ... right ? – Aaron

+4

질문에 당신은 다른 Windows 플랫폼에 대해 이야기하고 있지만, 이제는 Windows 플랫폼에서 실행되는 Mac OS에서 실행 파일을 만드는 방법에 대해 의견을 말합니까? 원래 다른 OS를 의미합니까? 이는 약간의주의를 기울여도 크게 비슷한 코드 기반을 사용할 수 있지만 답변을 다소 바꿀 것입니다. – Bart

+0

@BKevelham : 예, 맞습니다.이 질문은 모두 별개입니다. 당장은 걱정하지 않아도됩니다. Windows VM을 시작하고 Visual C++를 사용할 것입니다. – Aaron