2

コードのコンパイル時に次のエラーが発生します。

c:\boost_1_48_0\boost\signals\connection.hpp(118) : warning C4251: 'boost::signals::connection::con' : class 'boost
::shared_ptr<T>' needs to have dll-interface to be used by clients of class 'boost::signals::connection'

コード内のシグナルは次のように定義されます。

boost::signal<void (long long int)> totalTimeChanged;
boost::signal<void (unsigned int)> curTimeChanged;

接続は次のように行われます

GStreamer::totalTimeChanged.connect(boost::bind(&MainWindow\
            ::total_time_changed, &player, _1));

コンパイルは成功しましたが、これらのコンパイラ警告を取り除くにはどうすればよいですか?

4

1 に答える 1

3

dll インターフェイスまたは ABI で標準ライブラリ (STL) クラスを使用するにはどうすればよいですか? を参照してください。前述の「UnknownRoad」の投稿は、http://www.unknownroad.com/rtfm/VisualStudio/warningC4251.htmlにあります。

HTH

于 2012-10-11T08:50:30.790 に答える