做交叉平台发展与64位.使用的海湾合作委员会/linux和msvc9/服务器2008年。只是最近部署的一个客户的windows在一些测试的升级,我发现,虽然性传染病::streamoff是8个字节,该程序将崩溃时,寻求过去4G。

我立刻换到stlport其解决问题,但是stlport似乎有其他问题。为STL与msvc9真的,打破,还是我失去了一些东西?

由于代码是交叉平台,我有零兴趣在采用任何win32话。

相关的

有帮助吗?

解决方案 3

我最终使用STLport.最大的差别与STLport是,有些单元的测试,它坠毁在乘双精确的数字现在的工作和这些单元的测试通过。还有一些其他的差别用相对精密的爆了,但那些似乎是小的。

其他提示

即使你说你有"零"利用"win32"的呼吁,这样的情况下,你的困之间的岩石和硬的地方。

我只是执行我自己的版本文件的法师使用的"win32"的呼吁,外观和感觉像fstream接口。这是容易做到的,我已经做了几百倍。

叫它说'fstreamwin32'.

然后我会有一个标题的文件,将做些什么,如:

#ifdef WIN32
typedef fstreamwin32 fsteamnative;
#else
typedef fstream fsteamnative;
#endif

然后我会用fsteamnative无处不在。这样你跟你的代码交叉平台,并且仍然能解决你的问题。

如果问题是没有固定的,可以轻松地去除你的"win32"的解决方法,通过改变你的typedef回到使用fstream typedef。这就是为什么许多交叉平台的代码库有很多级别的间接(例如通过使用他们自己的typedef的标准的东西),以便他们做的东西,像这种将具有很大改变的代码。

另一个链接我发现关于这个问题:

http://cplusplus.com/forum/general/6813/

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top