Dll 의존성 해결하기
2019, Apr 04
문제가 발생한 상황
- Voost.dll 을 이용하는 VoostSDK.dll 프로젝트 생성.
- VoostSDK.dll 을 LoadLibrary 함.
- 모듈을 찾을 수 없다는 메시지.
발생 이유
- VoostSDK.dll 은 Voost.dll 에 의존적.
- Voost.dll 은 seLive.dll, seDevInterface.dll 에 의존적.
dll 의존성 해결방법
- 의존성 있는 dll을 모두 .exe 와 같은 경로에 복사.
C#, C++ Platform 판단 차이점
- 32bit dll 이 64bit dll을 호출하면 안됨. 반대도 마찬가지.
- C#은 컴퓨터의 환경으로 Platform 확인하고
- C++ 은 빌드환경으로 Platform 정함.
- 따라서 32bit 환경으로 빌드, 컴퓨터는 64bit, C# 이 빌드환경에
- 따라 dll 을 가져오게 하면 빌드환경에 상관없이 64bit 만 가져옴.
Platform 문제 해결방법
- C++ 은 32bit 64bit 모두 미리 빌드.
- C# 은 컴퓨터 환경에 따라 가져가게 만들기.