症状
请考虑以下情形:
-
在 Microsoft Visual C++ 2010年中创建应用程序。
-
在应用程序中使用fopen()函数打开的文件,和该函数使用r +、 、 或+访问模式。
-
您可以运行该应用程序,并打开一个等于或大于 4 千兆字节 (GB) 的文件 applicationtries。
在这种情况下,该文件未打开,或会返回以下错误︰
EINVAL (无效参数)
原因
它打开附加的文件后, fopen()函数查找到文件尾的方式将发生此问题。Fopen()函数内部使用_lseek()函数来执行此操作。但是, _lseek()函数不能处理等于或大于 4 GB 的文件。
解决方案
此修补程序更改函数的fopen()系列的行为。应用此修补程序后, fopen()函数内部使用的函数,可以寻求超过 4 GB 限制,而不会返回一个错误。具体来说, fopen()函数而不是_lseek()函数使用_lseeki64()函数。
修补程序信息
受支持的修补程序现已从 Microsoft 推出。但是,它旨在纠正本文介绍的问题。它仅应用于正经历此特定问题的系统。
若要解决此问题,请联系 Microsoft 客户支持服务以获取此修复程序。有关 Microsoft 客户支持服务的电话号码和有关支持费用的信息的完整列表,请访问下面的 Microsoft 网站︰
http://support.microsoft.com/contactus/?ws=support注意: 在特殊情况下,如果 Microsoft 支持专业人员确定某个特定的更新能够解决您的问题,可能取消的通常情况下收取的电话支持服务费用。照常收取支持费用将应用于其他支持问题和对于特定更新无法解决的问题。
系统必备组件
若要应用此修补程序,您必须具有 Microsoft Visual Studio 2010 Service Pack 1 (SP1) 安装。
重启要求
您可能需要重新启动计算机,如果正在使用受影响的文件,则安装此修复程序后。
修补程序替换信息
此修补程序不替代以前发布的修补程序。
文件信息
这样的全球版本具有的文件属性 (或更新的文件属性) 在下表中列出。日期和为这些文件的时间以协调世界时 (UTC) 列出。当您查看文件信息时,它将转换为本地时间。要了解 UTC 与本地时间之间的时差,请使用控制面板中的日期和时间项中的时区选项卡。
对于所有受支持版本的 Microsoft Visual Studio 2010 SP1
文件名称 |
文件版本 |
文件大小 |
日期 |
时间 |
平台 |
---|---|---|---|---|---|
Mfcm100.dll |
10.0.40219.362 |
82,696 |
15-Nov-2011 |
22:32 |
x86 |
Mfcm100d.dll |
10.0.40219.362 |
104,720 |
16-Nov-2011 |
00:29 |
x86 |
Mfcm100u.dll |
10.0.40219.362 |
82,704 |
15-Nov-2011 |
22:32 |
x86 |
Mfcm100ud.dll |
10.0.40219.362 |
106,256 |
16-Nov-2011 |
00:29 |
x86 |
Mfcm100.dll |
10.0.40219.362 |
93,960 |
15-Nov-2011 |
21:54 |
x64 |
Mfcm100d.dll |
10.0.40219.362 |
120,592 |
15-Nov-2011 |
23:56 |
x64 |
Mfcm100u.dll |
10.0.40219.362 |
93,968 |
15-Nov-2011 |
21:54 |
x64 |
Mfcm100ud.dll |
10.0.40219.362 |
122,128 |
15-Nov-2011 |
23:56 |
x64 |
Mfcmifc80.dll |
10.0.40219.362 |
14,096 |
16-Nov-2011 |
21:26 |
x86 |
详细信息
有关适用于 Microsoft Visual C++ 2010 Service Pack 1 (SP1) 的可再发行组件包的另一个修补程序包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章︰
2606060解决︰ 无法打开至少 4 GB,追加或通过使用 Visual C++ 2010年可再发行组件包的应用程序写入数据的文件
有关fopen()和_wfopen()函数的详细信息,请访问下面的 MSDN 网站︰
状态
Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。