Compartilhar via


Problemas conhecidos com Porting do eMbedded Visual C++

Várias ferramentas C++ e os recursos estão disponível para ajudar você a converter seus projetos Visual C++ eMbedded existentes em Visual Studio. Para obter mais informações, consulte o eMbedded Visual C++ ao Assistente para atualização do Visual Studio.

O ATL (ativo modelo biblioteca), Microsoft Foundation Classes (MFC) e bibliotecas C++ padrão tem sido atualizadas e alteradas desde a introdução do eMbedded Visual C++.Para obter uma lista de classes que não são suportados, consulte Lista de classes sem suporte do MFC 3.0 a 9.0 eVC. Código que chama essas classes precisa ser modificado para compilar em Visual Studio. Os seguintes problemas geralmente ocorrem quando são portagem do eMbedded Visual C++.

Problema

Descrição/resolução

The CCeSocket::OnReceive() método não obter chamado no MFC para dispositivos mais recente que Windows CE 3.0.

A resolução é discutida no artigo ajuda e suporte base de dados de conhecimento: Bug: Não obter chamado CCeSocket OnReceive() aceita dados soquetes.

The Classe CArchive Não há suporte para a classe.

Muitos projetos do Visual C++ eMbedded contêm referências a CArchive Class classe. Para resolver esse problema, remova referências para CArchive.

Algumas coleções de classes, sistema autônomo CObArray, CMapPtrToPtr e assim por diante, são implementadas no Windows CE 5.0 usando versões modeladas de <>CArray, CMap <>e assim por diante.No eMbedded Visual C++ versão 4.0 e em bibliotecas do C++ da área de trabalho, esses tipos são implementados sistema autônomo classes regulares e não modelados.Portanto, chamar IMPLEMENT_SERIAL essas classes de modelo causa um erro de compilação:

erro C2039: 'classCObArray': não é um membro de 'CArray <TYPE,ARG_TYPE>'

erro C2065: 'classCObArray': identificador não declarada

Para resolver essa diferença na implementação, altere a macro IMPLEMENT_SERIAL usar CObject em vez de CObArray, CMapPtrToPtr e assim por diante.

Em outras palavras, não escrever isso:

IMPLEMENT_SERIAL(CYourClass, CObArray, 0)

Use isto:

IMPLEMENT_SERIAL(CYourClass, CObject, 0)

Por padrão, o eMbedded Visual C++ versão 4.0, define o estilo de caixa de diálogo para DS_MODALFRAME para aplicativos MFC para Pocket PC. No MFC 9.0, não há suporte para esse estilo.

Exemplos

Esta seção descreve alguns dos erros mais comuns que podem ser encontrados ao migrar o projeto do eMbedded Visual C++ para o Visual Studio.Para obter mais informações, consulte Migrando do Microsoft eMbedded Visual C++ Projects to Visual Studio 2005.

  • Erro de compilar: Não é possível em em aberto incluir wceres.rc' arquivo'

    clicar com o botão direito do mouse no arquivo de recurso (RC) do projeto, clique em Exibir código e, em seguida, o comentário fora a seguinte linha:

    //#include "wceres.rc"
    
  • NUM_TOOL_TIP não definido

    No seu arquivo de cabeçalho, definir #define _WIN32_WCE_PSPC para as configurações do Pocket PC e _WIN32_WCE_WFSP para as configurações do Smartphone.

  • Não é possível em em aberto o arquivo OLDNAMES.lib

    In O gerenciador de soluções, clicar com o botão direito do mouse no arquivo de projeto e, em seguida, clique em Propriedades.

    clicar Vinculador.edição o Ignorar Biblioteca específica propriedade adicionando OLDNAMES.LIB.

  • Sobrecarga ambígua

    SCL (C++ biblioteca) e ATL padrão têm APIs também são o SDK do dispositivo.Disambiguate com um espaço para nome, sistema autônomo ::.

  • Módulo computador tipo 'THUMB' está em conflito com o tipo de computador de destino ' ARM

    In O gerenciador de soluções, clicar com o botão direito do mouse no arquivo de projeto e, em seguida, clique em Propriedades.

    Em Propriedades de configuração, expandir Vinculadore, em seguida, clicar no Linha de comandopropriedade .Remova o /MACHINE:THUMB comutador da linha de comando para cada configuração do Windows Mobile 5.0 na Propriedade páginas.

  • recurso String não separada corretamente

    Você pode enfrentar um problema no qual seqüências de recursos de aplicativos de porta não estão sendo separadas corretamente.In O gerenciador de soluções, clicar com o botão direito do mouse no arquivo de projeto e, em seguida, clique em Propriedades.Em Propriedades de configuração, expandir Recursose, em seguida, clicar no Linha de comandopropriedade .Adicionar um -n Alterne para a linha de comando do compilador de recurso.

  • BEGIN esperado no erro do diálogo

    Este erro geralmente é seguido pelo arquivo não encontrado erros, sistema autônomo "arquivo não encontrado: 0 x 1 ".Vá para o arquivo RC indicado pelo erro e modifique o código para usar um #ifdef demonstrativo em todo o FONT demonstrativo sistema autônomo neste exemplo de código a seguir.

    Código original:

    IDD_COMPTEST DIALOGEX 0, 0, 186, 95
    STYLE DS_SETFONT | WS_CHILD
    EXSTYLE WS_EX_CONTROLPARENT
    FONT 8, "MS Sans Serif", 0, 0, 0x1
    BEGIN
    END
    

    Código modificado:

    IDD_COMPTEST DIALOGEX 0, 0, 186, 95
    STYLE DS_SETFONT | WS_CHILD
    EXSTYLE WS_EX_CONTROLPARENT
    #ifdef _WIN32_WCE
    FONT 8, "MS Sans Serif"
    #else
    FONT 8, "MS Sans Serif", 0, 0, 0x1
    #endif
    BEGIN
    END
    

Consulte também

Conceitos

o eMbedded Visual C++ ao Assistente para atualização do Visual Studio

Outros recursos

Windows Mobile plataforma perguntas freqüentes sobre a migração para desenvolvedores