associação pythonbrasil[11] django zope/plone planet Início Logado como (Entrar)

Diferenças para "ChamarFuncaoEmDlls"

Diferenças entre as versões de 1 e 5 (4 versões de distância)
Revisão 1e 2004-08-16 02:13:57
Tamanho: 841
Comentário:
Revisão 5e 2008-09-26 14:07:19
Tamanho: 793
Editor: localhost
Comentário: converted to 1.6 markup
Deleções são marcadas assim. Adições são marcadas assim.
Linha 1: Linha 1:
= Como chamar funções de um DLL no windows. = Para chamar uma função contida em uma DLL no windows eu utilizei o módulo {{{ctypes}}}, disponível em: http://starship.python.net/crew/theller/ctypes/
Linha 3: Linha 3:
Para chamar uma função contida em uma DLL no windows eu utilizei o
módulo ctypes, disponível em: http://starship.python.net/crew/theller/ctypes/

A utilização é bem simples. Por exemplo, se você tem uma dll
chamada biblioteca.dll, e nesta biblioteca você tem uma função
chamada "funcaoTeste", basta fazer o seguinte para utilizá-la:
A utilização é bem simples. Por exemplo, se você tem uma {{{DLL}}} chamada {{{biblioteca.dll}}}, e nesta biblioteca você tem uma função
chamada {{{funcaoTeste}}}, basta fazer o seguinte para utilizá-la:
Linha 22: Linha 18:
O módulo ctypes também tem outra forma de importar dll's, que é o ctypes.cdll.nomeDaDLL.
No entanto, esta outra forma não funcionou para mim, dava erro no tamanho ou número dos
parâmetros quando eu chamava a função.

João Paulo F Farias.
jpaulofarias@yahoo.com.br
O módulo ctypes também tem outra forma de importar {{{dll}}}'s, que é o {{{ctypes.cdll.nomeDaDLL}}}. No entanto, esta outra forma não funcionou para mim, dava erro no tamanho ou número dos parâmetros quando eu chamava a função.

Para chamar uma função contida em uma DLL no windows eu utilizei o módulo ctypes, disponível em: http://starship.python.net/crew/theller/ctypes/

A utilização é bem simples. Por exemplo, se você tem uma DLL chamada biblioteca.dll, e nesta biblioteca você tem uma função chamada funcaoTeste, basta fazer o seguinte para utilizá-la:

   1 import ctypes
   2 
   3 dll = ctypes.windll.biblioteca
   4 funcaoTeste = dll.funcaoTeste
   5 
   6 res = funcaoTeste(parametro1, parametro2, parametroN)

Muito fácil, não?

O módulo ctypes também tem outra forma de importar dll's, que é o ctypes.cdll.nomeDaDLL. No entanto, esta outra forma não funcionou para mim, dava erro no tamanho ou número dos parâmetros quando eu chamava a função.