벡터 또는 문자열과 같은 std:: 개체가 포함된 클래스를 DLL에서 내보내려고 하면 dll 인터페이스가 필요하다는 경고가 나타날 수 있습니다. 이 경고는 클래스 내 복합 유형의 멤버가 명시적으로 DLL 내보내기로 표시되지 않은 것을 컴파일러가 감지할 때 발생합니다.
DLL_EXPORT를 사용하여 멤버 유형을 앞으로 선언하면 문제를 부분적으로 해결할 수 있습니다. 그러나 멤버 함수의 적절한 내보내기를 보장하려면 컴파일 단위의 해당 클래스도 DLL_EXPORT로 표시되어야 합니다.
이 요구 사항은 클라이언트가 클래스의 어떤 메서드를 사용하는지 컴파일러가 결정할 수 없다는 사실에서 비롯됩니다. DLL_EXPORTed 클래스의 따라서 액세스 가능한 모든 메서드를 내보내야 합니다. 이 맥락에서 경고를 무시하고 비활성화하는 것은 권장되지 않습니다.
dll을 내보낼 수 없는 구성원에 대한 경고를 해결하려면 다음 접근 방식을 고려할 수 있습니다.
제공된 예제, 템플릿 전문화 std::allocator
위 내용은 DLL에서 std:: 개체가 포함된 클래스를 어떻게 내보내나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!