PROBLEMA: Falha de plug-in carregar no Internet Explorer se IT É compilado com o sinalizador de UNICODE

Traduções de Artigos Traduções de Artigos
Artigo: 293100 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Quando utilizar o Netscape Plug-in Software Development Kit (SDK) para implementar um plug-in, compilar o plug-in com o sinalizador _UNICODE para fins de globalização, receberá a seguinte mensagem de erro no Internet Explorer:
Ocorreu um erro neste Plug-in.
Este problema não ocorre quando compilar o plug-in normalmente (ou com o sinalizador _MBCS ).

Causa

O código de plug-in de exemplo fornece do Netscape não utiliza a função CallWindowProc para chamar a predefinição WNDPROC para a janela Plug-in; o código de exemplo apenas contacta o apontador de função que a função SetWindowLong devolve directamente. Isto provoca uma excepção (que o Internet Explorer processa) porque, uma compilação de Unicode, SetWindowLong não devolve um apontador de função mas devolve um identificador especial que converte CallWindowProc num endereço WNDPROC .

Este é um erro no código de exemplo do SDK de plug-in do Netscape.

Resolução

O código seguinte está incorrecto no código de plug-in WNDPROC :
This->fDefaultWindowProc(hWnd, Msg, wParam, lParam);
				
para resolver este problema, modifique o código da seguinte forma:
CallWindowProc(This->fDefaultWindowProc, hWnd, Msg, wParam, lParam);
				
este problema não é aplicável a todas as versões das amostras do Netscape. Porque é o exemplo de um site Web de outros fabricantes, pode alterar e podem surgir problemas deste artigo não resolve. O exemplo dentro winNPSDK.zip (2.25 MB, modificado pela última vez 21 de Outubro de 1997) não apresentar este problema.

Mais Informação

Passos para reproduzir o comportamento

  1. Transferir o Netscape SDK zipada ficheiros o seguinte site da Netscape:
    http://home.netscape.com/comprod/development_partners/plugin_api/index.html
  2. Descompacte os ficheiros e abra Simple.mdp na pasta PluginSDK\Examples\Simple\Windows.
  3. No Visual C++ versão 6.0 ou posterior, converter o projecto em formato .dsw.
  4. Elimine os seguintes ficheiros da pasta de origem:
    • Npsimple.c
    • Stubs.c
    • Npwin.cpp

  5. Adicione os seguintes ficheiros à pasta de origem:
    • Npsimple.c (de PluginSDK\Examples\Simple\Source)
    • Stubs.c (de PluginSDK\Examples\Simple\Source)
    • Npwin.cpp (de PluginSDK\Examples\Common)

  6. Nas definições de projecto, insira o sinalizador _UNICODE definições pré-processador.
  7. No menu criar , clique em reconstruir todas para recriar todos os componentes.
  8. Coloque a DLL compilada para o directório da pasta programas Files\Internet Explorer\Plugins Plug-in.
  9. Abra o ficheiro HTML no PluginSDK\Examples\Simple\Testing para carregar o plug-in. Depois da página é carregada, receberá a mensagem de erro acima indicado.
Nota : Plug-ins desenhar (e fazer tudo o resto), chamando SetWindowLong subclasse HWND que estes são transmitidos através da função NPP_SetWindow .

Os produtos de outros fabricantes que são discutidos neste artigo são fabricados por empresas independentes da Microsoft. A Microsoft não oferece nenhuma garantia, expressa ou implícita, relativamente ao desempenho ou fiabilidade destes produtos.

Microsoft fornece informações de contactos outros fabricantes para ajudar a encontrar suporte técnico. Poderá ser alterado estas informações de contacto sem aviso prévio. Microsoft não garante a precisão destas informações de contacto outros fabricantes.

Propriedades

Artigo: 293100 - Última revisão: 6 de fevereiro de 2014 - Revisão: 4.0
A informação contida neste artigo aplica-se a:
  • Microsoft Internet Explorer 5.5
Palavras-chave: 
kbnosurvey kbarchive kbmt kbprb KB293100 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 293100

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