Таким образом, предупреждение 4251 является серьезной основой как минимум компилятора Microsoft.По сути, всякий раз, когда вы используете класс шаблона или класс не dllexport где-либо в определении заголовка, вы получите это предупреждение.Более того, в stl (например, map) есть множество классов, где вы даже не можете избавиться от этой ошибки, точка.
Моя проблема в том, что для определенного класса выдается предупреждение "#pragma (disable: 4251) "просто не работает.Он работает везде, но не здесь.
DelWestInspectionProgram.cpp
#include "stdafx.h"
#pragma warning(disable: 4251)
...
Output Log:
E:\svn\VisionNow\VisionSuite\VI.Inspector.ImageProcessing.Common\BIImage.h(79): warning C4251: 'BIImage::_data' : class 'boost::shared_array<T>' needs to have dll-interface to be used by clients of class 'BIImage'
6> with
6> [
6> T=unsigned char
6> ]
6>E:\svn\VisionNow\VisionSuite\VI.Inspector.ImageProcessing.Operators\BIImageOperator.h(25): warning C4251: 'BIImageOperator::_savePath' : class 'std::basic_string<_Elem,_Traits,_Ax>' needs to have dll-interface to be used by clients of class 'BIImageOperator'
6> with
6> [
6> _Elem=char,
6> _Traits=std::char_traits<char>,
6> _Ax=std::allocator<char>
6> ]
Любая помощь будет принята с благодарностью.