A biblioteca de informações de tipo de tempo de execução para o Pocket PC 2003 SDK está disponível

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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 830482
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sumário
Fornecer aos desenvolvedores completo Microsoft eMbedded Visual C++ Exception Handling e conversão dinâmica oferecem suporte em dispositivos Microsoft Windows Powered Pocket PC 2003, a Microsoft está distribuindo a biblioteca de informações de tipo de tempo de execução (RTTI) para Pocket PC 2003 SDK.

O seguinte arquivo está disponível para download no Centro de download da Microsoft:

DownloadDownload the RITTI.exe package now.

Para obter informações adicionais sobre como baixar arquivos de suporte da Microsoft, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
119591Como obter arquivos de suporte da Microsoft a partir de serviços online
Microsoft examinou esse arquivo em busca de vírus. Microsoft utilizou o mais recente software de detecção de vírus que estava disponível na data em que o arquivo foi publicado. O arquivo é armazenado em servidores com segurança avançada que ajudam a evitar qualquer alteração não autorizada no arquivo.

O download de RTTI.exe inclui os arquivos de biblioteca (.lib) e cria arquivos de banco de dados de programa (.pdb) para o "ArmV4" e "emulador".

Para usar a biblioteca RTTI em um projeto Pocket PC 2003, execute essas etapas:
  1. Copie os arquivos Ccrtrtti.lib e Ccrtrtti.pdb das pastas ArmV4 e emulador no download para as pastas que são nomeadas ArmV4 e emulador dentro da pasta \Lib do SDK do Pocket PC 2003.

    Observação Por padrão, esses diretórios são encontrados na pasta C:\Program Files\Windows CE Tools\wce420\POCKET PC 2003\Lib\ ArmV4OrEmulator em computadores desktops que possuem o Pocket PC 2003 SDK instalado.
  2. Para todas as configurações de projeto que você pretende de destino, inclua Ccrtrtti.lib nas configurações do projeto do eMbedded Visual C++ 4.0, execute estas etapas:
    1. No eMbedded Visual C++ 4.0, clique na guia link na caixa de diálogo Configurações do projeto .
    2. Digite Ccrtrtti.lib na caixa biblioteca de objetos/módulos .
    3. Clique em OK .
  3. Execute as seguintes etapas:
    1. Na caixa de diálogo Configurações do projeto , clique na guia C/C ++ .
    2. Adicione a opção /GX na lista de Opções de projeto . Você precisa essa opção para compilar o código o projeto de manipulação de exceção.

      Observação Se o projeto usa efeito dinâmico, adicione a opção /GR .
Mais Informações
Construções de código C++ Exception Handling que usa "throw" construções, "catch", ou ambos com tipos de dados requer suporte RTTI para identificar o tipo de exceção. Sem a biblioteca RTTI, digitado C++ Exception Handling código faz com que uma mensagem de erro vinculador é semelhante a seguinte mensagem de erro:

Erro LNK2001: símbolo externo não resolvido "type_info const:: ` vftable'"??_7type_info@@6B @)
Por exemplo, sem a biblioteca RTTI, o código a seguir causa o erro de vinculador anterior: tente
try{    // The code here can raise exceptions.}catch(int i){    // Optional exception handling logic goes here.}
o vinculador retorna o erro porque ele não é possível localizar a biblioteca RTTI que é necessária para identificação do tipo de exceções do tipo int .

A mesma lógica se aplica a "throw" construções que envolvem quaisquer dados. Por exemplo, a instrução
throw 1;
requer RTTI determinar o bloco correspondente "catch" que trataria exceções com valores de int .

Sem a biblioteca RTTI, o tratamento de exceção somente construir funciona é o tipo que envolve não tipos de dados. Por exemplo, o seguinte código links sem a biblioteca RTTI sem causar uma mensagem de erro: tente
try{    // The code here can raise exceptions.}catch(...){    // Generic exception handling logic goes here.}
com RTTI arquivos de biblioteca, todos os o C++ Exception Handling construções (digitado e un-typed) que são nesta seção deste artigo deve gerar executáveis correto. Não é necessário ter DLLs extras porque a lógica RTTI já está em DLLs que estão no dispositivo Pocket PC 2003 e o emulador.

A seguir é um problema conhecido com o eMbedded Visual C++ 4.0 Service Pack 2 (SP2) quando você usar esta biblioteca RTTI. Único-percorrendo o código sobre a chave de fechamento após a última instrução lógica em try/catch bloquear em um aplicativo poderia causar os seguintes eventos:
  • Ocorre uma falha no executável do aplicativo no emulador Pocket PC 2003.
  • O aplicativo pára de responder (travar) no dispositivo Pocket PC 2003.
No ponto de falha ou quando o aplicativo pára de responder (no final do bloco try/catch ), o eMbedded Visual C++ IDE irá relatar uma violação de acesso com a seguinte mensagem de erro:

Exceção de primeira instância
A Microsoft está ciente do problema e está trabalhando para corrigir o problema em uma versão futura.

A solução alternativa para esse problema é definir um ponto de interrupção na primeira instrução após o final do bloco try/catch e permitir que o aplicativo executar até o final do bloco try/catch e continuar a depuração no ponto de interrupção. Fazer não única etapa através do código após você atingiu a última instrução lógica no bloco try/catch .

Os arquivos de biblioteca RTTI também oferecem suporte para conversões dinâmicos. Por exemplo, sem a biblioteca RTTI eMbedded Visual C++ 4.0 reportará um erro de vinculador com o código a seguir:
struct A {    int a;    A() : a(1) {}    virtual ~A() {} // All the rest of destructors will be virtual. };void Test(){   A a;    A* a4 = dynamic_cast<A>(&a);}
erro vinculador é semelhante à seguinte:

Erro LNK2001: símbolo externo não resolvido "type_info const:: ` vftable'"??_7type_info@@6B @)
Erro LNK2019: unresolved ___RTDynamicCast símbolo externo referenciado na função "void __cdecl Test(void)" (? Test@@YAXXZ)
O código de conversão dinâmica baseia-se com êxito com a inclusão das bibliotecas RTTI o projeto.
type_info CPPEH eVC eVC ++

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 830482 - Última Revisão: 12/08/2015 05:06:28 - Revisão: 1.4

Microsoft Windows Mobile 2003 software for Pocket PC Standard Edition, Microsoft eMbedded Visual C++ 4.0

  • kbnosurvey kbarchive kbmt kbinfo KB830482 KbMtpt
Comentários