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_t2038 年 UNIX 32 位的溢出,您可以期待time_t在某个时候切换到 64 位。显然,这会破坏任何 DLL 接口。

于 2013-02-25T16:13:48.483 回答