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

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 o processamento, utilizando o parâmetro de compilador "/EHa" de excepções assíncrona. 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 o ou .

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 Build menu, seleccione Solução limpoe, em seguida, seleccione Build Solution.

  • No Build menu, 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.

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 separador Fuso horário no item data e hora no painel de controlo.

Ficheiros que estão incluídos neste pacote de actualização

Referências

Obter informações sobre a utilizada pela Microsoft para descrever actualizações de software.

Precisa de mais ajuda?

Aumente os seus conhecimentos
Explore as formações
Seja o primeiro a obter novas funcionalidades
Aderir ao Microsoft insiders

As informações foram úteis?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×