CORRECÇÃO: Excepções de substituições SEH são capturadas pelo processador de excepções incorrecto quando o processamento de excepções assíncrona está activado no WEC 2013

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 3008664
Este artigo descreve um problema em que SEH excepções são capturadas por um processador de 2013 do Windows Embedded Compact errado. Existe uma actualização corrigir este problema. Antes de instalar esta actualização, tem de ser instaladas todas as actualizações anteriormente disponibilizadas para este produto.
Sintomas
Considere o seguinte cenário:
  • Utilize o construtor de aplicação Plug-in para 2013 do Visual Studio para criar uma aplicação de C++ direccionada 2013 do Windows Embedded Compact.
  • Activar a excepção assíncrona de processamento, utilizando o "/ EHa"parâmetro de compilador. Este parâmetro permite que ambos os C++ síncronas e estruturados de processamento de excepções métodos destinados a serem misturados no mesmo código de processamento de excepções assíncrona (SEH).
  • Executa o código para interceptar as excepções de substituições SEH relacionado.
Neste cenário, excepções de substituições SEH sempre são capturadas no processador de excepções do primeiro mesmo que ela é filtrada para uma excepção síncrona C++.

O comportamento esperado é excepções de substituições SEH serem abrangidas pelo processador de excepções de reticências.

Por exemplo, execute o seguinte código exemplo:
class CMyEx{public:    CMyEx(int nParam) : m_nParam(nParam) { }    int m_nParam;}; void TestExceptions(){    try    {        int a = 42;        int b = 0;        // throw CMyEx(1);        // throw 97;        int c = a / b;    }    catch (const CMyEx &e)    {        wprintf(L"CMyEx exception caught (param=%d)!\n", e.m_nParam);    }    catch (...)    {        wprintf(L"Exception of unspecified type caught by ellipsis clause!\n");    }}
Neste exemplo, sempre acerta a cláusula catch primeira quando ocorre a excepção de substituições SEH (número inteiro dividir por zero) em vez do processador de reticências conforme esperado.

Resolução

Informações de actualização de software

Incorporado Compact 2013 actualização mensal do Windows (de Setembro de 2015) está agora disponível da Microsoft. Para transferir esta actualização mensal do Windows incorporado de 2013 Compact, vá para Microsoft OEM Online ou MyOEM.

Pré-requisitos

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

Requisito de reinício

Depois de aplicar esta actualização, deve efectuar uma limpeza de toda a plataforma. Para tal, utilize um dos seguintes métodos:
  • No Buildmenu, seleccione Solução limpoe, em seguida, seleccione Build Solution.
  • No Buildmenu, seleccione Recriar a solução.
Não tem de reiniciar o computador depois de aplicar esta actualização de software.

Atualizar informações de substituição

Esta actualização não substitui quaisquer outras actualizações.

Informações de ficheiro

A versão inglesa deste pacote de actualização de software tem os atributos de ficheiro (ou atributos de ficheiro posteriores) listados na seguinte tabela. As datas e horas destes ficheiros são listadas na hora Universal Coordenada (UTC). Quando visualiza as informações do ficheiro, é convertido para a hora local. Para determinar a diferença entre a UTC e a hora local, utilize o separadorFuso horário no item data e hora no painel de controlo.
Ficheiros que estão incluídos neste pacote de actualização
Nome do ficheiroTamanho do ficheiroDataHoraCaminho
Frame.cpp34,13313-Nov-201423:06Private\Winceos\Coreos\Core\Corelibc\Crtw32\Eh
Fullcrt.lib30,027,37809-Sep-201509:17Public\Common\Oak\Lib\X86\Checked
Fullcrt.lib30,228,29209-Sep-201509:17Public\Common\Oak\Lib\X86\Retail
Fullcrt.lib28,759,83609-Sep-201509:16Public\Common\Oak\Lib\X86\Debug
Fullcrt.lib29,278,30009-Sep-201509:17Public\Common\Oak\Lib\Armv7\Checked
Fullcrt.lib29,566,73009-Sep-201509:17Public\Common\Oak\Lib\Armv7\Retail
Fullcrt.lib33,139,56009-Sep-201509:16Public\Common\Oak\Lib\Armv7\Debug
Msvcr110d.dll1,339,95208-Sep-201505:26Public\Common\Sdk\Crt\Bin\X86
Msvcr110.dll754,22408-Sep-201505:26Public\Common\Sdk\Crt\Bin\X86
Msvcr110d.Map1,287,57908-Sep-201505:26Public\Common\Sdk\Crt\Bin\X86
Msvcr110d.Rel528,83408-Sep-201505:26Public\Common\Sdk\Crt\Bin\X86
Msvcr110.Map788,98608-Sep-201505:26Public\Common\Sdk\Crt\Bin\X86
Msvcr110.Rel242,16908-Sep-201505:26Public\Common\Sdk\Crt\Bin\X86
Msvcr110d.dll1,145,31208-Sep-201505:26Public\Common\Sdk\Crt\Bin\Arm
Msvcr110.dll539,60808-Sep-201505:26Public\Common\Sdk\Crt\Bin\Arm
Msvcr110d.Map2,714,27508-Sep-201505:26Public\Common\Sdk\Crt\Bin\Arm
Msvcr110d.Rel215,92408-Sep-201505:26Public\Common\Sdk\Crt\Bin\Arm
Msvcr110.Map1,258,31708-Sep-201505:26Public\Common\Sdk\Crt\Bin\Arm
Msvcr110.Rel122,16708-Sep-201505:26Public\Common\Sdk\Crt\Bin\Arm
Referências
Obter informações sobre o terminologia que a Microsoft utiliza para descrever atualizações de software.

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 3008664 - Última Revisão: 10/30/2015 00:19:00 - Revisão: 1.0

Windows Embedded Compact 2013

  • kbautohotfix kbqfe kbhotfixserver kbfix kbmt KB3008664 KbMtpt
Comentários