我在 Windows 7、64 位和 NTFS 上。我正在构建一个必须是 32 位的 DLL。我有一个非常简单的例程,我想用 C++ 实现。我正在使用以下方法读取一个大文件:
unsigned long p;
ifstream source(file);
streampos pp(p);
source.seekg(pp);
对于超过 4GB 的文件,我尝试使用 unsigned long long 但它不起作用。我究竟做错了什么?我正在使用 GNU GCC,尝试 MSVC Express 2008/2010 会有用吗?
更新:
我的 GCC 似乎有问题。现在,我正在使用 MSVC 测试您的提案,并且似乎可以正常工作。MSVC 使用 _int64 来表示 streampos/streamoff 对象,稍后我将使用 GCC 进行检查。