Visual Studio 2008 Express에서 C++을 사용하고 있습니다.DLL 의존성 버전 충돌
우리는 클라이언트에 바이너리 전용 Windows 라이브러리를 제공하고 있습니다.이 라이브러리는 여러 라이브러리를 사용합니다. 따라서 우리는 우리가 사용하는 dll 파일과 함께 dll 파일을 출하했습니다. 이제 문제는 클라이언트가 우리가 사용하는 라이브러리 중 일부를 사용하지만 다른 버전에서 사용한다는 것입니다. 그러므로 우리는 우리 도서관을 사용할 수 없습니다. 왜냐하면 우리 모두가 의존하는 도서관은 양립 할 수 없기 때문입니다.
기술적으로 나는 두 종속 버전이 모두 프로세스 공간에로드되어야한다고 생각합니다. 그러나, 나는 그들의 응용 프로그램뿐만 아니라 우리의 dll이 동일한 종속성 dll 파일 이름을 찾는 것처럼이를 수행하는 방법을 확신하지 못합니다. 누구든지이 문제를 다루는 최선의/가장 깨끗한 방법은 무엇인지 말해 줄 수 있습니까?
감사합니다.
라이브러리는 DLL 이름으로로드됩니다. 연결하려는 DLL의 이름을 변경하십시오. –
Mahmoud가 말했듯이 파일 이름에 라이브러리 버전 번호를 포함시킵니다 (예 :'msvcr80.dll'). – wallyk
표준로드 시간 연결을 사용하는 경우 행운입니다. 런타임 연결 중 하나 (LoadLibrary/GetProcAddress)를 사용해야하거나 지연로드가있는 일부 트릭을 수행해야합니다. –