在C++dll中导出以下哪种方法是安全的
Which of these methods is safe to export in a C++ dll?
我正在制作一个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接口传递日期和时间结构?
只需传递方便的内容,并记录所需的编译器/库。例如,不能保证不同的编译器具有相同的time_t
,并且由于2038年UNIX 32位time_t
的溢出,您可能会在某个时刻切换到64位time_t
。显然,这会破坏任何DLL接口。
相关文章:
- 跨 DLL 边界访问虚拟方法是否安全/可能?
- 将传入的网络"char*"数据转换为"uint8_t"并返回的安全方法是什么?
- 使用 std::vector::swap 方法在C++中交换两个不同的向量是否安全?
- 在 c++ 中从执行的 shell 命令获取返回状态的安全方法是什么?
- 并发安全堆栈接口方法:正确与否?
- 将积分类型的数组作为另一个不相关的积分类型的阵列进行访问的安全且符合标准的方法
- 有没有一种简单的方法来检查C++中的不安全表达式
- 用非零值初始化void指针的正确(或最安全)方法
- 使用范围解析运算符时,在构造函数中调用虚拟方法是否安全?
- 是否有一种安全的方法可以断言字符串视图是否以 null 终止?
- 在C++线程内实现多个计时器的最安全方法
- 解决方法:QPixmap:在GUI线程之外使用pixmap是不安全的
- 最有效的安全方法将 std::map<int, std::shared_ptr> 转换为 std::<Base>map<int, std::shared_ptr<D
- 在移出向量上调用 size() 方法是否安全?
- 重新分配指针阵列的一部分的安全方法
- 最快和/或最安全的方法,在C 中加入两个宽字符串
- 一种安全、符合标准的方法,使类模板专用化仅在实例化时才无法使用"static_assert"进行编译
- 这种线程间通信方法安全吗?
- 这种加密方法安全吗
- 构造一个临时对象并调用一个返回指针的方法——安全吗?