Sintomas
Considere o seguinte cenário:
-
Você cria um aplicativo no Microsoft Visual C++ 2010.
-
Usar a função fopen() no aplicativo para abrir um arquivo e a função usa o modo de acesso r +ou + .
-
Execute o aplicativo e o applicationtries para abrir um arquivo que é igual ou maior que 4 gigabytes (GB).
Nesse cenário, o arquivo não abrir ou retornado o seguinte erro:
EINVAL (argumento inválido)
Causa
Esse problema ocorre devido ao modo como a função fopen() procura nas extremidades dos arquivos depois que ele abre os arquivos para acrescentar. Internamente, a função fopen() usa a função _lseek() para executar esta ação. No entanto, a função _lseek() não pode manipular arquivos que são iguais ou maiores do que 4 GB.
Resolução
Este hotfix altera o comportamento da família de funções fopen() . Depois de aplicar esse hotfix, a função fopen() internamente usa uma função que pode buscar além do limite de 4 GB sem retornar um erro. Especificamente, a função de fopen() usa a função _lseeki64() em vez da função _lseek() .
Informações sobre o hotfix
Um hotfix suportado está disponível agora na Microsoft. No entanto, destina-se a corrigir somente o problema descrito neste artigo. Aplique-o somente aos sistemas que apresentarem esse problema específico.
Para resolver esse problema, contate o Atendimento Microsoft para obter o hotfix. Para obter uma lista completa dos números de telefone do Atendimento Microsoft e informações sobre custos de suporte, visite o seguinte site da Microsoft:
http://support.microsoft.com/contactus/?ws=supportObservação: em alguns casos, as taxas cobradas para chamadas de suporte podem ser canceladas caso um profissional de Suporte da Microsoft determine que uma atualização específica resolverá o problema. Os custos normais de suporte serão aplicados para questões de suporte adicionais e problemas que não se qualificam à atualização específica em questão.
Pré-requisitos:
Para aplicar esse hotfix, você deve ter o Microsoft Visual Studio 2010 Service Pack 1 (SP1) instalado.
Requisitos de reinicialização:
Você terá que reiniciar o computador após instalar esse hotfix, se os arquivos afetados estão sendo usados.
Informações de substituição do hotfix:
Esse hotfix não substitui um hotfix lançado anteriormente.
Informações sobre o arquivo:
A versão global tem os atributos de arquivo (ou atributos de arquivo posteriores) listados na tabela a seguir. As datas e horas desses arquivos estão listadas na Hora Universal Coordenada (UTC). Quando você exibe as informações do arquivo, ele é convertido para a hora local. Para localizar a diferença entre o UTC e a hora local, use a guia Fuso Horário no item Data e Hora no Painel de Controle.
Para todas as versões com suporte do Microsoft Visual Studio 2010 SP1
Nome do Arquivo |
Versão do arquivo |
Tamanho do arquivo |
Data |
Hora |
Plataforma |
---|---|---|---|---|---|
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 |
Mais informações
Para obter mais informações sobre outro pacote de hotfix que se aplica ao pacote redistribuível do Microsoft Visual C++ 2010 Service Pack 1 (SP1), clique no número abaixo para ler o artigo na Base de Conhecimento da Microsoft:
Corrigir 2606060 : não é possível abrir um arquivo que é pelo menos 4 GB para acrescentar ou gravar dados usando um aplicativo que usa o Visual C++ 2010 Redistributable Package
Para obter mais informações sobre as funções fopen() e _wfopen() , visite o seguinte site da MSDN:
Status
A Microsoft confirma que este é um problema em seus produtos listados na seção "Aplica-se a".