Loading...

stl을 DLL제작시 문제점..warning C4251: 에 대한 대처

원문링크 : http://blog.naver.com/wwforever80/60043796212 #include #if !defined(DLLEXPORT_EXPORTS) # define DLLEXPORT_API __declspec(dllexport) #else # define DLLEXPORT_API __declspec(dllimport) #endif class DLLEXPORT_API CDLLexport { public: std::vector vs; }; warning C4251: 'vs' : class 'std::vector' needs to have dll-interface to be used by clients of class 'CDLLexport..

warning C4251

헐헐..이런삽질이.. warning 하나 없애보겠다고 그렇게 삽질을 하다니.... 분명 dll 지정해줬는데 말야 왜 인터페이스가 없다고그러는 겐지. 위의 첨부 파일을 읽어보면 답을 알 수 있다. 어느분이 쓴지는 몰겠지만 존경합네다.(--)(__) 꾸벅. 이 경구 메세지는 STL 컨테이너 정의에 _declspec(dllexport) 선언이 되어있지 않은 클래스템플릿을 export 할시에 나타난다. - 해결 방법 vector의 경우엔 템플릿을 인스턴트화 시킨 후 사용하면 해결되지만 다른것은 안된다. 이유는 vector는 워낙 많이 쓰는 거라 특별이 되도록 만들어 놨기 때문이라나~ vector 해결법 : template class __declspec(dllexport) std::vector; 그 이외엔 #pr..