Artigo: 164787 - Última revisão: segunda-feira, 24 de Janeiro de 2005 - Revisão: 4.2 INFO: Interfaces Rundll e Rundll32 do Windows
Nesta páginaSumário
O Microsoft Windows 95, Windows 98 e Windows Millennium Edition (Me) contêm dois programas utilitários da linha de comandos, com o nome Rundll.exe e Rundll32.exe, que permitem a invocação de uma função exportada de uma DLL, de 16 ou 32 bits. No entanto, os programas Rundll e Rundll32 não permitem chamar qualquer função exportada de qualquer DLL. Por exemplo, não é possível utilizar estes programas utilitários para invocar as chamadas da interface de programação de aplicações (API, Application Programming Interface) Win32 exportadas das DLLs do sistema. Os programas só permitem a chamada de funções de uma DLL que estejam explicitamente escritas para serem chamadas por esses programas. Este artigo fornece mais detalhes sobre a utilização dos programas Rundll e Rundll32 nos sistemas operativos Windows listados acima.
O Microsoft Windows NT 4.0, Windows 2000 e Windows XP são fornecidos apenas com Rundll32. Não há suporte para Rundll (o utilitário Win16) nestas plataformas. Os programas utilitários Rundll e Rundll32 foram concebidos originalmente apenas para utilização interna da Microsoft. Mas as funcionalidades fornecidas pelos mesmos são de tal modo genéricas que, actualmente, os programas encontram-se disponíveis para utilização geral. Note que o Windows NT 4.0 é fornecido apenas com o programa utilitário Rundll32 e suporta apenas Rundll32. Este artigo poderá conter hiperligações para conteúdo em inglês (ainda não traduzido). Mais InformaçãoRundll vs. Rundll32Rundll carrega e executa DLLs de 16 bits, enquanto Rundll32 carrega e executa DLLs de 32 bits. Se passar o tipo incorrecto de DLL a Rundll ou Rundll32, esta poderá não ser executada sem que sejam apresentadas quaisquer mensagens de erro.Linha de comandos de RundllA linha de comandos de Rundll será:
Como funciona RundllRundll executa os seguintes passos:
Como escrever a DLLNa DLL, escreva a função <ponto_de_entrada> com o seguinte protótipo:DLL de 16 bits:
hwnd - identificador de janela que deverá ser utilizado como a janela proprietária para
quaisquer janelas criadas pela DLL
hinst - o identificador da instância da sua DLL
lpszCmdLine - linha de comandos ASCIIZ que deverá ser analisada pela DLL
nCmdShow - descreve o modo de apresentação das janelas da DLL
hwnd = (identificador da janela principal) hinst = HINSTANCE de SETUPX.DLL lpszCmdLine = "132 C:\WINDOWS\INF\SHELL.INF" nCmdShow = (independentemente do nCmdShow passado a CreateProcess) Notas especiais sobre diferenças entre o Windows 95 e o Windows NTNo Windows NT, Windows 2000 e Windows XP o comportamento de Rundll32.exe é ligeiramente diferente, de modo a suportar linhas de comandos UNICODE.O Windows NT tenta primeiro GetProcAddress de <Ponto_De_Entrada>W. Se este ponto de entrada for localizado, pressupõe-se que o protótipo é: Se o <Ponto_De_Entrada>W não for localizado, o Windows NT tentará GetProcAddress do <ponto_de_entrada>A e do <ponto_de_entrada>. Se um destes for localizado, será considerado um ponto de entrada ANSI e será tratado do mesmo modo que no Windows 95/98/Me. Assim, se pretender que a DLL seja executada no Windows 95 com suporte ANSI e no Windows NT/2000/XP com suporte UNICODE, deverá exportar duas funções: Ponto_De_EntradaW e Ponto_De_Entrada. No Windows NT/2000/Me, a função Ponto_De_EntradaW será chamada com uma linha de comandos UNICODE; no Windows 95/98/Me, a função Ponto_De_Entrada será chamada com uma linha de comandos ANSI. Referências
Para obter um exemplo da utilização de Rundll, consulte o seguinte artigo sobre como iniciar uma aplicação do Painel de controlo no Windows 95 utilizando o utilitário da linha de comandos Rundll: 135068
(http://support.microsoft.com/kb/135068/PT/
)
HOWTO: Start a Control Panel Applet in Windows 95, 98, or WinNT A informação contida neste artigo aplica-se a:
| Outros Recursos Outros Sites de Suporte
ComunidadesTraduções de Artigos
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email
Voltar ao topo