Como gosto muito de escrever em python resolvi fazer algo parecido com o post anterior só que desta vez o python acessando uma lib em c.
Eu utilizei o modulo ctypes. O módulo ctypes provê a compatibilidade dos tipos de dados em C permitindo chamar bibliotecas, como por exemplo DDLs e shared objects.
Git: https://github.com/crleal/python_com_c
1 - Programa exemplo em c:
HelloWorld.c
1: #include
2:
3: double HelloWorld_dobro (int x)
4: {
5: printf("Metodo dobro!\n");
6: return x * 2;
7: }
8:
9: int somar(int n, int m)
10: {
11: return n + m;
12: }
2 - Compilando o HelloWorld.c:
1:gcc -Wall HelloWorld.c -shared -fPIC -o HelloWorld_lib.so
3 - Programa em Python:
HelloWorld.py
1:#!/usr/bin/env python2: 3: import os 4: import ctypes 5: 6: # Carrega a lib para uma variavel 7: libLocal = ctypes.CDLL("./HelloWorld_lib.so") 8: 9: print("A soma dos numeros:") 10: 11: # chama os metodos dentro da lib 12: print(libLocal.somar(5, 6)) 13: print(libLocal.HelloWorld_dobro (5))
4 - Executando o python:
1:Python HelloWorld.py
Resultado:
A soma dos numeros: 11
Metodo dobro! 10
Nenhum comentário:
Postar um comentário