Visual Studio 2003 프로젝트 내에서 Visual Studio 2008로 컴파일 된 DLL과 라이브러리는 어떻게 사용할 수 있습니까?VS2003 솔루션의 VS2008 빌드 라이브러리를 사용할 수 있습니까?
감사합니다, 댄
Visual Studio 2003 프로젝트 내에서 Visual Studio 2008로 컴파일 된 DLL과 라이브러리는 어떻게 사용할 수 있습니까?VS2003 솔루션의 VS2008 빌드 라이브러리를 사용할 수 있습니까?
감사합니다, 댄
확실히 DLL을 사용할 수 있습니다. VS2003 및 VS2008에서 동일한 타사 DLL을 사용했습니다. 일을 훨씬 쉽게하기 위해서는 일반 오래된 데이터 형식을 DLL 함수간에 전달해야합니다. 구조체 또는 클래스는 훨씬 더 어렵지만 대부분의 경우 VS2003과 VS2008 사이에서도 가능해야합니다.
this questions에서 내가 제공 할 수있는 것보다 훨씬 자세한 정보를 확인하십시오.
일반적으로 컴파일러 중 하나가 다른 컴파일러와 명시 적으로 호환되지 않는 한 컴파일 된 C++ 라이브러리 (동적 또는 정적)를 다른 컴파일러에서 사용할 수 없습니다.
'제 3 자'또는 Windows DLL에 대한 일부 답변이 있습니다. 그러나, 나는 그 DLL의 전부는 아니더라도 대부분이 C API가 아니라 C API를 사용하고 있었음을 기꺼이 알았습니다. C++ ABI (응용 프로그램 바이너리 인터페이스)는 표준화되지 않았습니다. 동일한 컴파일러의 다른 버전에서 이름 맹 글링과 같은 것이 보장되지는 않으며 컴파일러 에 따라 호출 규칙이 다를 수 있습니다.
사용할 수 보았다 어떤 링크를 설정하지 않았지만, 처음에 말했듯이, 일반적으로 다른 컴파일 된 코드의 정적 또는 동적 컴파일 C++ 라이브러리를 사용할 수없는 빠른 구글 검색 컴파일러. C는 다른 짐승이고 그 대답은 완전히 다릅니다!
더 자세한 내용을 추가 할 수 있습니까? 그것은 정말로 도서관들 사이에서 앞뒤로주고받는 것에 달려 있습니다. 확실히 Windows API DLL (vC++의 * a * 버전으로 작성)은 vC++ 사용자가 만든 모든 버전의 응용 프로그램 (일부는 6.0, 2003, 2008, 2010 등)에서 작동합니다. – Aardvark
분명히 말씀 드리고 싶습니다. .NET 종속성이없는 C++을 사용하고 있습니다. – DanJ
매개 변수로 전달되는 C++ 클래스에 대한 포인터가 있습니다. 이를 제거하고 기본 유형 만 사용하는 것이 좋습니다. const std :: string &와 같은 stl 유형은 어떻습니까? – DanJ