Compartilhar via


COM and DCOM Migration

Windows Mobile Not SupportedWindows Embedded CE Supported

9/8/2008

Este tópico contém informações sobre como migrar essa funcionalidade de versões anteriores de Windows Embedded CE.

Para obter informações gerais migração, consulte Migrando de uma versão anterior do Windows CE.**

Observação

COM (DCOM) distribuído, às vezes, também conhecido como "COM Remoting", não está incluído no Windows Embedded CE.Consulte Remote DCOM Support para obter mais informações.

Migrando de Windows CE 2.12 e Windows CE 3.0

Com a introdução do DCOM em Windows CE .NET 4.0, conformidade com regras COM é exigido porque DCOM oferece suporte a múltiplo modelos do apartamento e DCOM objetos têm uma afinidade de alta segurança para os apartments eles ocupam. Além disso, o de base DCOM codificar foi consolidado com o pequeno no-de base codificar proc somente COM.

Para o seguinte exemplo, COM regras são aplicadas agora:

  • O requisito para inicializar apartments antes de usar COM.
  • Em relação à contagem de referência para CoInitializeEx e CoUninitialize: Chamadas para CoInitializeEx deve estar combinado com um número igual de chamadas para CoUninitialize. Antes da Windows CE .NET 4.0, CoInitializeEx Foi um vazio função e combinado chamadas não eram exigido.
  • Regras em declarações de compartimento de objetos COM. O com suporte Somente implementação anterior COM de vários segmentos apartments permitidos, mas ainda o carregamento de objetos declarado como um único segmento.

Como resultado dessas alterações, Windows CE .NET 4.0 posteriormente e não para trás compatível com aplicativos mais antigos que não obedecer a esses requisitos. Para retificar parcialmente esse problema sem precisar alterar codificar ou adicionando entradas Registro, a seguinte as alterações foram feitas em Windows CE .NET 4.0:

  • Para arquivos executáveis (.exe) vinculados usando ferramentas é anterior a versão 4.0, se um compartimento não foi inicializado antes de usar COM funcionalidade, o compartimento automaticamente inicializado para de vários segmentos quando uma função da API COM é chamado.
    Isso causa um vazamento memória quando o segmento é encerrado, mas ela permite que o aplicativo para executar. Essa abordagem não trabalho com arquivos .dll.
  • Para habilitar .dll mais antigos arquivos hospedados em executáveis mais recentes, você pode usar o Registro para identificar arquivos executáveis que devem ser automaticamente inicializado.
    Para fazer isso, adicionar um novo DWORD entrada para o HKEY_LOCAL_MACHINE\Software\Microsoft\OLE\LegacyApps chave. A nova entrada deve ter o mesmo nome como o arquivo executável e um valor de 1.
    Essa etapa só é necessária para arquivos executáveis que arquivos .dll carregar.
  • Qualquer declaração dos requisitos de compartimento no Registro é ignorada para arquivos .dll que foram vinculados usando ferramentas prior to versão 4.0. Em vez disso, o requisito de compartimento é definida automaticamente como livre-segmentadas.
  • O tipo de compartimento padrão em Windows CE .NET 4.0 e posterior está livre-segmentadas, em contraste para onde for Single-threaded, Windows. Esse tipo de compartimento é usado se uma não estejam declarada no Registro.

See Also

Other Resources

Component Services (COM and DCOM)