TN056: Instalação de componentes do MFC

Esta anotação descreve os requisitos para a instalação de qualquer componente que usa o MFC DLL(s), incluindo CTL3D32.DLL. os componentes relacionados a ODBC e do DAO requer considerações especiais e não serão discutidos aqui. Por favor, consulte a documentação para esses componentes para mais informações.

DLLs e marcas de versão

O MFC DLL(s) são o que se chama uma DLL compartilhada. Para o Win32 Versão do MFC, há potencialmente um único DLL do MFC que você precisa para instalar com o seu aplicativo: MFC4x.DLL ou uma versão posterior. Esta única DLL contém todo o código necessário para núcleo MFC, MFC/OLE MFC/banco de dados e as classes do MFC/rede (as versões anteriores tinham cada um desses componentes quebradas em DLLs separadas).

Para o Macintosh versão do MFC, estas são DLLs separadas ainda: MFC4x.DLL, MFCO4x.DLL e MFCD4x.DLL (ou versões posteriores). Mesmo se seu aplicativo não usa todas as DLLs do MFC (talvez você não utilize a funcionalidade OLE ou banco de dados do MFC, por exemplo), você deve instalar todas as DLLs do MFC como um conjunto. Qualquer outra coisa que resultaria em componentes incompatíveis. Isto é importante porque não há nenhuma garantia de que uma versão mais recente do MFC4x.DLL irá trabalhar com versão 4. x do MFCO4x.DLL.

Porque essas DLLs são componentes compartilhados, eles residem no diretório de "sistema" do Windows. Ou seja, eles devem ser instalados para o diretório indicado pelo valor de retorno de GetSystemDirectory. Instalar nesse diretório, como outros componentes de sistema partilhados, deve ser feito com cuidado para evitar a substituição mais recentes versões de DLL que outros aplicativos instalados anteriormente podem confiar. Para recuperar as informações de versão para os arquivos instalados, use o GetFileVersionInfo APIs fornecidas pelo Windows versão API. Você só deve instalar uma nova DLL se suas informações de versão, dê pelos campos dwFileVersionMS e dwFileVersionLS da estrutura VS_FIXEDFILEINFO são maiores do que as mesmas informações de versão da DLL já instalada.

Finalmente, se seu aplicativo usa CTL3D32.DLL (se ele chama CWinApp::Enable3dControls), você precisará instalar a versão correta do CTL3D32.DLL para o diretório de sistema, mais uma vez tendo o cuidado de verificar que uma versão mais recente já não existe. Além disso, a versão do CTL3D32.DLL que instalar é diferente dependendo da plataforma que você estiver instalando o em. Para Windows versão 4.0 e posterior, CTL3D32.DLL não é usado em nenhuma circunstância, então ele não deve ser instalado (isso inclui o Windows 95 e Windows NT 4.0). Para Win32s, \WIN32S\REDIST\CTL3D32.DLL deve ser instalado no diretório do sistema. Para o Windows NT 3. XX, \MSDEV\CTL3D32.DLL deve ser instalado no diretório do sistema. Cada uma dessas DLLs é específica para a plataforma de destino, mesmo que eles tenham o mesmo nome. A versão Win32s irá se recusar a executar no Windows NT; a versão do Windows NT irá se recusar a executar em Win32s.

Considerações sobre localização

Se seu aplicativo tiver escolhido para localizar seu uso dos recursos MFC por instalação MFC4xLOC.DLL ou uma versão posterior, você precisará seguir as instruções nesta seção. Como outras DLLs compartilhados, MFC4xLOC.DLL só deve ser instalado se sua versão for mais recente que a versão que já está instalada. Assim instalar esta DLL é muito semelhante ao instalar outros DLL(s) MFC. Há um par de exceções.

Em primeiro lugar, você nunca deve instalar MFC4xLOC.DLL em um sistema em inglês. Recursos em inglês são construídos em MFC4x.DLL e é mais rápido para carregá-los de que MFC4xLOC.DLL DLL em vez de procurar (e carga) em primeiro lugar.

Em segundo lugar, existem várias versões do MFC4xLOC.DLL – um para cada localidade. Seus nomes são baseados na localidade. Por exemplo MFC4xDEU.DLL é a versão em alemão de MFC4xLOC.DLL-contém informações sobre a versão que o identifica como localidade alemã; MFC4xESP.dll, da mesma forma, é a versão em espanhol da DLL. Se você instalá-lo, você deve garantir que 1) a localidade para a qual se destina corresponde a localidade do sistema do Windows que é instalado, e 2) que a localidade não é diferente da localidade do MFC4xLOC.DLL já instalado (se estiver instalado). Se estas duas condições não puderem ser satisfeitas, o DLL não deve ser substituído. Se a marca de versão sobre o MFC4xLOC.DLL existente é igual ou maior que a marca de versão na sua distribuição e, em seguida, você é produto funcionará uma vez instalado. Ele pode ter misturado recursos (alguns de uma língua, alguns do outro), mas ele vai trabalhar. Se a marca de versão sobre o DLL existente é menor do que a sua distribuição e a localidade é incompatível, o produto pode não funcionar uma vez instalado. Você deve avisar o usuário sobre essa incompatibilidade e volta fora do processo de instalação. O usuário terá de resolver o conflito entre essa DLL e seu produto antes de continuar.

Importa&ntenbsp;  Obviamente, isto pode adicionar um monte de complexidade para sua instalação, além de aborrecimentos para seu usuário final se usar e instalar uma mistura de diferentes aplicativos localizados (alguns aplicativos localizados para um idioma e alguns para outro). Devido a essa dificuldade, é altamente recomendável que você não enviar qualquer versão do MFC4xLOC.DLL. Em vez disso, incluir os recursos de implementação do MFC apropriados no seu próprio módulo e evitar toda esta questão. Consulte técnico Anotação 57 para obter mais informações sobre este assunto.

Técnico anotações por número |nbsp; &Notas técnicas por categoria

Index