2013-02-25 37 views
1

我正在做一個dll由幾個可執行文件使用。我讀過有關使用在接口STL類的危險,我很擔心需要編譯與相同的編譯器,並使用相同的運行時上運行。以下哪種方法可以安全地在C++ dll中導出?

哪個這些簽名會宣佈我的方法正確的方式,如果導入它們的可執行文件可能與不同版本的VC++編譯器和不同版本的升壓的編譯?

#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接口傳遞日期和時間結構?

回答

1

只是通過什麼方便,需要什麼樣的編譯器/庫文件。例如。有沒有保證,不同的編譯器具有相同的time_t,並且由於UNIX 32位的溢time_t在2038,你可以在某些時候希望切換到64位time_t。很顯然,這會破壞任何DLL接口。

相關問題