Visual Studio 2003 SP1로 작성된 C++ \ MFC 응용 프로그램을 외부 정적 라이브러리 "SomeExtStaticLib.lib"에 연결합니다. 또한 "SomeExtStaticLib.lib"와 함께 제공된 헤더 파일을 포함하여 응용 프로그램에 개체를 만듭니다.정적 라이브러리가 이름 맹 글링 문제를 방지합니까?
SomeExtStaticLib.lib은 VC6으로 빌드 된 정적 라이브러리입니다.
지금, 나는 비주얼 스튜디오 2008
내 애플리케이션을 마이그레이션하고 난 아주 기본적인 질문이 있습니다.
또한 "SomeExtStaticLib.lib"를 VS2008로 컴파일해야합니까? 이 VC6 컴파일 된 "SomeExtStaticLib.lib"내 VC9 컴파일 된 응용 프로그램에서 사용할 때 모든 링커 오류를 제공하지 않았습니다. 나는 적어도 약간의 유명한 mangling 이슈를 기대하고 있었다.
이름 바꾸기 문제를 제거하는 정적 라이브러리가 있습니까?
인터페이스뿐 아니라 메모리 할당 및 할당 해제가 변경되었을 수도 있습니다. 즉, lib에 할당 된 메모리를 해제하거나 lib가 할당 한 메모리를 해제하면 정의되지 않은 일이 발생합니다. 여기에는 던져지고 잡히는 곳에서 해제되는 예외가 포함됩니다. –
@Tobias Langner 이것은 컴파일하고 링크 한 방법에 달려 있습니다. '/ MD' 또는'/ MDd'를 사용한다면 문제가되지 않습니다. (적어도 나는 그렇게 생각하지 않는다.) –