2014-05-20 2 views
0

다른 PC에서 컴파일 된 응용 프로그램에서 사용될 클래스 라이브러리 dll을 만들었습니다. Dll은 Visual Studio 2010 C++을 사용하여 만듭니다. DLL을 사용하는 응용 프로그램은 VS 2010 C++ 및 VS2012 C++가 아닌 컴파일해야한다고 가정합니다. 내가 틀렸다면 나를 바로 잡아주세요.컴파일러의 클래스 라이브러리 의존성

실행 파일과 DLL PC의 Visual Studio 2010 버전이 다른 경우 (예 : Professional/Ultimate) 어떻게됩니까?

이러한 Visual Studio에 다른 업데이트 패키지가 설치되면 어떻게됩니까?

+0

많은 문제를 피하는 아주 쉬운 방법입니다. 구현 세부 사항으로 인해 클라이언트 코드가 손상되지 않도록 DLL을 설계하는 것은 쉽지 않습니다. 많은 C++ 제품을 포기해야합니다. std :: string을 반환하거나 예외를 throw하는 것과 같은 명백한 작업을 수행 할 수 없습니다. 메모리 관리 및 객체 레이아웃을 호환 가능하게 만드는 데 필요한 보장은 VM 런타임에서만 제공됩니다. C++이 아니라, 특히 C++ 11이 사과 카트를 뒤엎었습니다. VS 버전은 중요하지 않습니다. 단지 버전 번호입니다. –

답변

1

Visual Studio 2012에서는 프로젝트의 속성 페이지에서 다른 "플랫폼 도구 집합"을 지정할 수 있습니다. 따라서 2012를 사용하여 2010 Dll을 대상으로하는 응용 프로그램을 만들 수 있습니다. 응용 프로그램은 Dll과 동일한 도구 세트를 대상으로해야합니다. 서로 다른 버전 (예 : Professional/Ultimate)은 문제가되는 재배포 가능 파일 (dll)이기 때문에 요소가되어서는 안됩니다.

관련 문제