不同运行时的问题是无法解决的,因为 FILE* 结构属于 Windows 系统上的一个运行时。
但如果你编写一个小的包装接口,你就完成了,这并没有什么坏处。
stdcall IFile* IFileFactory(const char* filename, const char* mode);
class IFile {
virtual fwrite(...) = 0;
virtual fread(...) = 0;
virtual delete() = 0;
}
Run Code Online (Sandbox Code Playgroud)
这可以保存在各处的 dll 边界上传递,并且不会造成真正的伤害。
PS:如果您开始跨 dll 边界抛出异常,请务必小心。如果您在 Windows 操作系统上满足某些设计要求,那么这将很好地工作,但在其他一些操作系统上会失败。
| 归档时间: |
|
| 查看次数: |
4010 次 |
| 最近记录: |