1

いくつかの実行可能ファイルで使用される dll を作成しています。インターフェイスを介して STL クラスを使用する危険性について読んだことがあります。同じコンパイラでコンパイルし、同じランタイムで実行する必要があることを懸念しています。

メソッドをインポートする実行可能ファイルが異なるバージョンの VC++ コンパイラと異なるバージョンの boost でコンパイルされる可能性がある場合、これらのシグネチャのどれが私のメソッドを宣言する正しい方法でしょうか?

#include "boost/date_time/posix_time/posix_time_types.hpp"

boost::posix_time::ptime getTime();
void setTime(boost::posix_time::ptime time);

time_t getTime();
void setTime(time_t time);

MyCustomTime getTime(); // Defined just like time_t
void setTime(MyCustomTime time);

dll インターフェイスを介して日付と時刻の構造体を渡すより良い方法はありますか?

4

1 に答える 1

1

便利なものを渡し、必要なコンパイラ/ライブラリを文書化するだけです。time_tたとえば、さまざまtime_tなコンパイラが同じtime_t. 明らかに、それはすべての DLL インターフェイスを壊します。

于 2013-02-25T16:13:48.483 に答える