2010-03-10 3 views
0

타사 개발자가 VC++ 2005에서 생성 된 .libs 및/또는 .dll을 제공하면 VC++ 2008에서 사용할 수 있습니까? 2008 Pro와 함께 컴파일하고 2008 Standard/Express를 실행하면 어떨까요?다른 버전의 Visual C++에 내장 된 libs/DLL 사용

저는 C++이 이전처럼 VC++ 런타임과 함께 이식성이 아니지만 적어도 VC++의 최신 버전에서 기존 라이브러리/dll을 사용할 수 있다고 생각하고 싶습니다.

답변

1

2008 년에는 .libs를 사용할 수 없으며 다른 런타임 라이브러리에 연결되며 개체 레이아웃과 vtable 구조가 약간 다를 수 있습니다.

다른 버전간에 .dll을 사용할 수는 있지만 .dll의 인터페이스에 따라 다릅니다. 클래스 또는 메소드를 반출하는 경우 클래스를 매개 변수로 가져 오거나 리턴합니다.

+0

글쎄, 필자는 몇 년 전에 작성된 Windows 시스템 DLL을 사용할 수 있습니다 ... 당신이 libs에있을 가능성이 높습니다. –

+0

예 - 말했듯이 .dll과의 호환성은 인터페이스 종류에 따라 다릅니다. win32 api .dll과 같은 순수한 C 인터페이스는 안전합니다. –

1

2008 Pro vs 2008 Standard/Express edition 질문과 관련하여 생성되는 코드는 100 % 호환됩니다. Pro에서 프로젝트를 시작한 후 Express에서 개발하고 계속해서 개발했습니다.

다양한 2008 버전에서 생성 된 바이너리가 호환됩니다. 모든 변경 사항은 IDE에서 사용할 수있는 기능입니다.

+0

호환 코드! = 호환 바이너리. 문제는 Express에서 빌드 한 라이브러리가 Pro로 작성된 앱에 링크 될 수 있거나 그 반대로 연결될 수 있는지 여부입니다. –

+0

@ 존, 내 대답은 아마도 심하게 말한 것입니다. 다양한 2008 버전으로 제작 된 바이너리는 호환 될 것입니다. 모든 변경 사항은 IDE에서 사용할 수있는 기능입니다. – ChrisF

관련 문제