Boa noite! Por vezes uma linguagem de programação como python (embora poderosa e versátil) pode necessitar de mais potência ou acesso a bibliotecas de sistemas. Para fazer uso de uma biblioteca dinâmica como .DLL (windows) ou .SO (linux), pode fazê-lo da seguinte forma:
Neste caso, vamos criar uma biblioteca de testes em C para linux (o mesmo código C e python pode ser usado no Windows).
- Primeiro passo, criamos a biblioteca com o seguinte código de linguagem C:
user@host:~$ cat testintegration.c
#include <stdio.h>
#include <stdlib.h>
#ifdef _WIN32
# define DLL_EXPORT __declspec(dllexport)
#else
# define DLL_EXPORT
#endif
DLL_EXPORT int sum(int a, int b) {
int res = 0;
res = a + b;
printf("ResC: %d\n",res) ;
return res;
}
- Para a compilar usamos o seguinte comando (substituir biblioteca pelo nome da sua escolha):
user@host:~$ gcc -Wall -Wextra -O -ansi -pedantic -fPIC -shared LIBRERIA.c -o /tmp/LIBRERIA.so
- Para o utilizar nesta língua, basta chamá-lo importando a classe cdll do módulo ctypes, após utilizar o método LoadLibrary da classe cdll, será possível chamar os métodos da biblioteca importada:
user@host:~$ python
Python 2.7.9 (default, Jun 29 2016, 13:08:31)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from ctypes import cdll;
>>> mydll = cdll.LoadLibrary('/tmp/LIBRERIA.so')
>>> mydll.sum(2,'a')
ResC: 1456018974
1456018974
Mais informações em http://wolfprojects.altervista.org/articles/dll-in-c-for-python/