CORREÇÃO: a função VarUI4FromI4 devolve um valor incorreto se for transmitido um valor negativo para o parâmetro "lIn" da função no Windows Embedded CE 6.0 R3

Sintomas

Tenha em conta o seguinte cenário:

  • Executa uma aplicação num dispositivo baseado no Windows Embedded CE 6.0 R3.
  • A aplicação chama a função VarUI4FromI4 para converter tipos de dados de variantes do tipo de dados LONG para o tipo de dados longo (ULONG) não assinado.
  • A aplicação transmite um valor negativo para o parâmetro lIn da função.

Neste cenário, a função VarUI4FromI4 devolve o código de S_OK em vez do código DISP_E_OVERFLOW.

Causa

Este problema ocorre porque a implementação da função VarUI4FromI4 não verifica se existem valores negativos no parâmetro de entrada.

Resolução

Informações de atualização de software

Uma atualização de software suportada está agora disponível na Microsoft como Atualização Mensal do Windows Embedded CE 6.0 (abril de 2012). Na secção "Informações de ficheiro", o nome do ficheiro do pacote contém a versão do produto, a data, o número do artigo da Base de Dados de Conhecimento microsoft e o tipo de processador. O formato de nome de ficheiro do pacote é o seguinte:

Product version-yymmdd-kbnnnnnn-processor type

Por exemplo: Wincepb60-110128-kb2492159-armv4i.msi é a correção armV4i windows Embedded CE 6.0 Platform Builder documentada no artigo da Base de Dados de Conhecimento 2492159 e que está contida na atualização mensal de janeiro de 2011.

Para resolver este problema imediatamente, transfira esta atualização mensal do Windows Embedded CE 6.0 a partir dos seguintes sites da Microsoft:

Windows Embedded

Transferir o Windows Embedded CE 6.0

Centro de Transferências da Microsoft

Windows Embedded CE 6.0

Pré-requisitos

Esta atualização só é suportada se todas as atualizações anteriormente emitidas para este produto também tiverem sido instaladas.

Requisito de reinício

Depois de aplicar esta atualização, tem de efetuar uma compilação limpa de toda a plataforma. Para tal, utilize um dos seguintes métodos:

  • No menu Compilar , clique em Solução Limpa e, em seguida, clique em Criar Solução.
  • No menu Compilar , clique em Reconstruir Solução.

Não tem de reiniciar o computador depois de aplicar esta atualização de software.

Informações de substituição de atualizações

Esta atualização não substitui outras atualizações.

Informações de ficheiro

A versão em inglês deste pacote de atualização de software tem os atributos de ficheiro (ou atributos de ficheiro posteriores) que estão listados na tabela seguinte. As datas e horas destes ficheiros estão listadas na Hora Universal Coordenada (UTC). Quando vê as informações do ficheiro, estas são convertidas para a hora local. Para encontrar a diferença entre a hora UTC e a hora local, utilize o separador Fuso Horário no item Data e Hora no Painel de Controlo.

Ficheiros do instalador

                    
                  

Nome de ficheiro Tamanho do ficheiro Data Hora
Wincepb60-120411-kb2690112-mipsiv.msi 1,556,480 11-Abr-2012 17:26
Wincepb60-120411-kb2690112-mipsiv_fp.msi 1,552,384 11-Abr-2012 17:26
Wincepb60-120411-kb2690112-sh4.msi 1,527,808 11-Abr-2012 17:26
Wincepb60-120411-kb2690112-x86.msi 1,433,600 11-Abr-2012 17:26
Wincepb60-120411-kb2690112-armv4i.msi 1,622,016 11-Abr-2012 17:26
Wincepb60-120411-kb2690112-mipsii.msi 1,544,192 11-Abr-2012 17:26
Wincepb60-120411-kb2690112-mipsii_fp.msi 1,544,192 11-Abr-2012 17:26

Files incluídos neste pacote de atualização

                    
                  

Nome de ficheiro Tamanho do ficheiro Data Hora Caminho
Oleaut32.lib 1,504,968 03-Abr-2012 00:46 Público\Dcom\Oak\Lib\Armv4i\Debug
Oleaut32.lib 1,379,952 03-Abr-2012 00:46 Público\Dcom\Oak\Lib\Armv4i\Retail
Oleaut32.lib 1,386,194 03-Abr-2012 00:47 Public\Dcom\Oak\Lib\Mipsii\Debug
Oleaut32.lib 1,248,114 03-Abr-2012 00:46 Público\Dcom\Oak\Lib\Mipsii\Retail
Oleaut32.lib 1,389,480 03-Abr-2012 00:47 Public\Dcom\Oak\Lib\Mipsii_fp\Debug
Oleaut32.lib 1,241,700 03-Abr-2012 00:47 Público\Dcom\Oak\Lib\Mipsii_fp\Retail
Oleaut32.lib 1,414,536 03-Abr-2012 00:47 Público\Dcom\Oak\Lib\Mipsiv\Debug
Oleaut32.lib 1,270,712 03-Abr-2012 00:47 Público\Dcom\Oak\Lib\Mipsiv\Retail
Oleaut32.lib 1,408,732 03-Abr-2012 00:48 Public\Dcom\Oak\Lib\Mipsiv_fp\Debug
Oleaut32.lib 1,255,694 03-Abr-2012 00:47 Public\Dcom\Oak\Lib\Mipsiv_fp\Retail
Oleaut32.lib 1,231,180 03-Abr-2012 00:48 Público\Dcom\Oak\Lib\Sh4\Debug
Oleaut32.lib 1,125,456 03-Abr-2012 00:48 Público\Dcom\Oak\Lib\Sh4\Retail
Oleaut32.lib 1,134,364 03-Abr-2012 00:46 Público\Dcom\Oak\Lib\X86\Debug
Oleaut32.lib 1,134,120 03-Abr-2012 00:46 Público\Dcom\Oak\Lib\X86\Retail

Referências

Para obter mais informações sobre a função VarUI4FromI4, aceda ao seguinte site da Microsoft Developer Network (MSDN):

Informações gerais sobre a função VarUI4FromI4 Para obter mais informações sobre a terminologia da atualização de software, clique no seguinte número de artigo para ver o artigo na Base de Dados de Conhecimento Microsoft:

824684 Descrição da terminologia padrão utilizada para descrever as atualizações de software da Microsoft