Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Importante
Com o Visual Studio 2017 ou posterior, você pode recompilar seu aplicativo para Arm64 ou Arm64EC para que seu aplicativo seja executado em velocidade nativa total. Para obter mais informações sobre como compilar como Arm64, consulte a postagem do blog: Suporte oficial para o desenvolvimento de Windows 10 em Arm. Para obter informações sobre o Arm64EC, consulte Anunciando Arm64EC: Criando Aplicações Nativas e Interoperáveis para Windows 11 em Arm.
Se uma aplicação de ambiente de trabalho x86 não funcionar como numa máquina x86, utilize as seguintes orientações para o ajudar a resolver problemas.
| Questão | Solução |
|---|---|
| Seu aplicativo depende de um driver que não foi projetado para Arm. | Recompile seu driver x86 para Arm64. Consulte Construindo drivers Arm64 com o WDK. |
| Seu aplicativo está disponível apenas para x64. | Se você desenvolver para a Microsoft Store, envie uma versão Arm do seu aplicativo. Para obter mais informações, consulte Arquiteturas de pacotes de aplicativos. Se você for um desenvolvedor do Win32, recompile seu aplicativo para o Arm64. Para obter mais informações, consulte Preview inicial do suporte do Visual Studio para o desenvolvimento do Windows 10 em Arm. |
| Seu aplicativo usa uma versão do OpenGL posterior à 1.1 ou requer OpenGL acelerado por hardware. | Use o modo DirectX do aplicativo, se estiver disponível. Os aplicativos x86 que usam DirectX 9, DirectX 10, DirectX 11 e DirectX 12 funcionam no Arm. Para saber mais, veja Gráficos e jogos em DirectX. |
| Seu aplicativo x86 não funciona como esperado. | Tente usar a Solução de Problemas de Compatibilidade seguindo orientação da Solução de Problemas de Compatibilidade de Programas no Arm. Para obter algumas outras etapas de solução de problemas, consulte o artigo Solução de problemas de aplicativos x86 no Arm . |
Melhores práticas para o WOW
Um problema comum ocorre quando um aplicativo descobre que está sendo executado em WOW e, em seguida, assume que está em um sistema x64. Com essa suposição, o aplicativo pode executar as seguintes ações:
- Tente instalar a versão x64, que não é suportada em Arm.
- Verifique se há outro software na visualização nativa do registro.
- Suponha que um .NET framework de 64 bits está disponível.
Geralmente, um aplicativo não deve fazer suposições sobre o sistema host quando é determinado a ser executado sob WOW. Evite ao máximo interagir com componentes nativos do sistema operacional.
Um aplicativo pode colocar chaves do Registro sob a exibição nativa do Registro ou executar funções com base na presença do WOW. O original IsWow64Process indica apenas se a aplicação está a ser executada numa máquina x64. Os aplicativos agora devem usar IsWow64Process2 para determinar se estão sendo executados em um sistema com suporte WOW.
Motoristas
Todos os drivers em modo do núcleo, drivers do User-Mode Driver Framework (UMDF) e drivers de impressão devem ser compilados para corresponder à arquitetura do sistema operativo. Se um aplicativo x86 tem um driver, então você deve recompilar esse driver para Arm64. O aplicativo x86 pode funcionar bem sob emulação; no entanto, você precisa recompilar seu driver para Arm64 e qualquer experiência de aplicativo que dependa do driver não está disponível. Para obter mais informações sobre como compilar seu driver para Arm64, consulte Criando drivers Arm64 com o WDK.
Extensões de shell
Os aplicativos que tentam conectar componentes do Windows ou carregar suas DLLs em processos do Windows precisam recompilar essas DLLs para corresponder à arquitetura do sistema, como o Arm64. Normalmente, editores de método de entrada (IMEs), tecnologias assistenciais e aplicativos de extensão de shell usam essas DLLs. Por exemplo, essas aplicações mostram ícones de armazenamento na nuvem no Explorer ou num menu de contexto com o botão direito do rato. Para saber como recompilar seus aplicativos ou DLLs para Arm64, consulte a Early preview of Visual Studio support for Windows 10 on Arm development postagem de blog.
Depuração de código
Para investigar o comportamento do seu aplicativo com mais profundidade, consulte Depuração no Arm para saber mais sobre ferramentas e estratégias para depuração no Arm.
Máquinas Virtuais
A plataforma Windows Hypervisor não é suportada na plataforma Qualcomm Snapdragon 835 Mobile PC. Portanto, executar máquinas virtuais usando Hyper-V não funciona. Continuamos a fazer investimentos nessas tecnologias em futuros chipsets Qualcomm.
Geração dinâmica de código
O sistema emula aplicativos de desktop x86 no Arm64 gerando instruções do Arm64 em tempo de execução. Esta emulação não suporta uma aplicação de ambiente de trabalho x86 que impeça a geração ou modificação de código dinâmico no seu processo.
Essa mitigação de segurança é ativada em certos processos de aplicações utilizando a API SetProcessMitigationPolicy com a opção ProcessDynamicCodePolicy. Para executar com êxito no Arm64 como um processo x86, você precisa desabilitar essa política de mitigação.