본문 바로가기

Programming/MFC

STL을 DLL로 사용할때

출처 유근이의 수호천사 바보천둥 | 바보천둥
원문 http://blog.naver.com/drrich/20013537750
 

STL을 DLL로 사용할때
stl을 사용할때 static Library에서는 아무런 문제가 없지만
dll을 만들어서 사용 할때는

warning C4251:

이 뜨게 된다.

이 문제는 비주얼 C++에서 DLL인터페이스를 지원하는 능력의 한계 때문에 발생한다.
템플릿을 DLL인터페이스로 지정할 때는 export 할 템플릿과 관계된 모든 템플릿 export 지정 역시 필요하기 때문이다.
DLL에서 외부 컨테이너를 export할수 없다.
그렇다 하더라도 DLL 내부에서만 운용되는 용도로 얼마든지 사용할수 있기 때문에 DLL에서 STL이 전혀 쓸모 없는 것은 아니다.
내부에서만 사용되더라도 wrapper 함수를 제공하는 방법등 다른 방식으로 유용하게 사용될 수 있다.