Como criar DLLs de recurso localizado para o aplicativo MFC

Traduções deste artigo Traduções deste artigo
ID do artigo: 198846 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Sumário

DLLs de recurso são um meio eficiente para usar recursos em diferentes idiomas. Aplicativos podem fornecer uma única DLL que foi localizado recursos através do seu programa de instalação. Alterar para outro idioma é uma simples questão de usar a DLL correta.

As informações a seguir descreve como fazer com que um recurso localizado DLL com o Visual C++ 5.0.

Mais Informações

Este artigo descreve um método fácil, geral para gerar um aplicativo e DLLs com suporte a vários idiomas de recursos. Usando esse método, você ter todos os recursos em um arquivo RC, facilitando bastante a ver quais recursos você implementou.

  1. Crie um aplicativo do MFC AppWizard padrão (chamado MyApp neste exemplo) e especifique Português para o idioma de recursos. Usar MFC biblioteca como uma DLL compartilhada .
  2. Inserir um padrão MFC AppWizard DLL como um projeto de nível superior ( ResourceDll neste exemplo) e selecione o DLL de extensão do MFC (usando compartilhada DLL da MFC) para o tipo de DLL. Como nenhum arquivo .lib é criado para a DLL, um projeto de nível superior evita problemas do vinculador em subseqüentes compilações do executável.
  3. Remover e excluir o RC arquivo, o arquivo Resource.h, o ResourceDll.rc2 arquivo e o diretório RES do projeto ResourceDll.
  4. No menu Project , selecione o menu pop-up Add Project e escolha arquivos . Insira o arquivo MyApp.RC projeto ResourceDll.
  5. Para cada idioma adicional que MyApp será ter localizado recursos para:

    1. No menu Build , clique em configurações e adicione uma nova configuração de lançamento e de depuração. Por exemplo, adicionar uma Versão de francês configuração e copiar suas configurações de ResourceDll - versão do Win32 e adicionar uma configuração Debug do francês e copiar suas configurações de ResourceDll - Win32 Debug .
    2. Na caixa de diálogo Configurações do projeto , escolha Várias configurações , na caixa de combinação de configurações para . Escolha a versão e as configurações de projeto de depuração para um idioma específico na caixa de diálogo Selecionar configurações de projeto para modificar . Na guia recursos , adicione as definições de pré-processamento AFX_RESOURCE_DLL e AFX_TARG_XXX, onde XXX é o um especificador de letra para o idioma. Por exemplo, FRA para francês [França, DEU para alemão e ENU para inglês (EUA)].

      Observação: As definições de pré-processador são separados por sem espaços entre as definições de vírgula.
    3. Na caixa de combinação do idioma , selecione o idioma usado no recurso.

      Observação: Convém nomear suas DLLs para ajudar a identificá-los. Por exemplo convém adicionar "d" ao nome raiz para marcá-la como uma DLL de depuração e use extensões de arquivo específicos do idioma para observar a localidade. Esteja ciente de que uma versão de depuração do executável não funcionará com uma versão da dll de recurso.

      Isso pode ser feito alterando o destino de saída que o vinculador usa para cada compilação da DLL.

      1. Selecione a página de propriedades conexão das configurações de projeto de caixa de diálogo.
      2. No no configurações combinação-caixa Para , realce a configuração para o qual você deseja alterar o diretório de saída DLL.
      3. Verifique se a que categoria é definido como Geral e especifique o nome do diretório de saída na caixa de edição em Nome de arquivo de saída .
      Por exemplo, para uma dll contendo localizado recursos para o francês, alterar Debug/ResourceDLL.dll para francês Debug / ResourceDLLd.FRA para depurar o Win32 configuração e alteração alteram Release/ResourceDLL.dll para versão francês / ResourceDLL.FRA para a configuração versão Win32.

      Para usar essas DLLs, você deve copiar a DLL desejada para o mesmo diretório que MyApp.exe está em ou um diretório apropriado do Windows e renomeá-lo para ResourceDll.dll ou ResourceDllD.dll. Por exemplo:

      cópia ResourceDll.FRA\windows\system\ResourceDll.dll

      Você também pode especificar o diretório onde o arquivo de recursos, MyApp.res, será gerado para cada DLL localizada.

      1. Selecione a página de propriedades recursos da caixa de diálogo configurações do projeto .
      2. No no configurações combinação-caixa Para , realce a configuração para o qual você deseja alterar o diretório de saída recurso.
      3. Verifique se a que categoria é definido como Geral e especifique o diretório onde o arquivo de saída para os recursos será gerado na caixa de edição em nome de arquivo de recursos .
  6. No menu Project , selecione configurações e realçar o projeto ResourceDLL . Escolha Todas as configurações do configurações para caixa de combinação. Clique na guia C/C ++ seguida por seu pré-processador categoria. Adicione o caminho para o projeto MyApp no campo adicionais incluem diretórios .
  7. No menu Project , selecione configurações e realçar MyApp projeto. Escolha All Configurations as Configurações para caixa de combinação. Clique na guia recursos e no campo definições pré-processador , adicione AFX_RESOURCE_DLL . Essa definição remove todos os recursos MyApp.exe.
  8. No espaço de trabalho ResourceView, abrir cada pasta e, com a tecla CTRL pressionada, selecione todos os recursos no projeto MyApp. Por exemplo, suas seleções devem incluir um IDR_MAINFRAME para o acelerador e IDD_ABOUTBOX para a caixa de diálogo.

    Para cada uma das configurações ResourceDLL, no menu Inserir , clique em Copiar recurso , defina o idioma para o idioma apropriado e pressione ' OK ' . Agora você deve ter um conjunto completo de recursos para outro idioma. Entretanto, os recursos devem ser convertidos.

    (Se o idioma para o qual você deseja criar recursos localizados não estiver na lista de idiomas, selecione outro idioma e editar manualmente o texto do arquivo de recurso. Depois de ter feito as alterações apropriadas, os colchetes ao lado para o recurso serão diga "Idioma desconhecido" e mostrar os identificadores de idioma e subidioma.)

    Observação: Você também pode copiar preexistentes recursos para o arquivo de recursos neste momento. Por exemplo, criar um separado AppWizard MFC projeto de aplicativo que usa os recursos de idioma francês usando as seleções mesmas que você usou para criar MyApp inicial projeto. Depois de criar este aplicativo, feche seu espaço de trabalho e abra o espaço de trabalho do projeto MyApp e selecione ResourceView . Em seguida, no menu arquivo , clique em Abrir e abra o arquivo RC do aplicativo francês. Agora arrastar/soltar todos os recursos do aplicativo para o aplicativo MyApp francês. Esses recursos já estão em francês e precisam sem conversão.
  9. Adicionar uma variável de membro HINSTANCE para o aplicativo é CWinApp classe derivada. Isso manterá o identificador de instância DLL. Por exemplo:
       HINSTANCE m_hInstResDLL;
    						


    Dentro da definição da CWinApp::InitInstance para seu projeto, adicione as seguintes três linhas na parte superior da função:

    #ifdef _DEBUG
       // Load the debug version of the localized resources.
       m_hInstResDLL = LoadLibrary("ResourceDlld.dll");
    #else
       // Load the release version of the localized resources.
       m_hInstResDLL = LoadLibrary("ResourceDll.dll");
    #endif
       ASSERT( m_hInstResDLL != NULL );
    						


    Observação: Não é necessário chamar AfxSetResourceHandle() neste momento.
  10. Adicionar uma função de membro CMyApp::ExitInstance() usando a classe Assistente. Adicione código liberando a biblioteca antes da sai do aplicativo. Modifique a função da seguinte forma:

    int CMyApp::ExitInstance()
    {
       // In case you load multiple DLL's make sure to free them,
       // and avoid calling FreeLibrary with a NULL pointer.
    
       FreeLibrary(m_hInstResDLL);
       return CWinApp::ExitInstance();
    }
    						


  11. O aplicativo está pronto para criar. Usando a caixa de diálogo em lote criar, selecione os alvos desejados. Lembre-se que você deve copiar a DLL apropriada para a um local adequado e renomeá-lo.

Referências

Observação Tech 56 (TN056) descreve o uso de recursos localizados MFC (MFC40LOC.DLL).

Observação Tech 57 (TN057) descreve alguns dos designs e procedimentos podem ser usados para localizar o componente, sê-lo a controlar um aplicativo ou uma OLE ou uma DLL que usa o MFC.

Observação Tech 23 (TN023) descreve os recursos padrão fornecido com o e necessários para a biblioteca MFC.

Para obter informações adicionais sobre o Microsoft Foundation Classes incluído no Visual C++ versões 2.2 e anteriores, consulte o seguinte artigo na Base de dados de Conhecimento da Microsoft:
147149 "Como localizar recursos com Foundation Classes"


(c) 1999 Microsoft Corporation, todos os direitos reservados. Contribuições de Isaac Varon, Microsoft Corporation.

Propriedades

ID do artigo: 198846 - Última revisão: quinta-feira, 1 de julho de 2004 - Revisão: 1.1
A informação contida neste artigo aplica-se a:
  • Microsoft Visual Studio 97 Service Pack 3
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
Palavras-chave: 
kbmt kbhowto kbintl kbintldev KB198846 KbMtpt
Tradução automática
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: 198846
Aviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com