Jump to content
Fórum Script Brasil
  • 0

Integração entre C/Python


Question

Olá!

alguém pode me dar uma noção de como é feita a integração entre C e Python?

É possível fazer isso e depois compilar tudo com o Py2Exe?

Vou colocar um cenário de exemplo:

Quero fazer um programa que realize cálculos bastantes complexos. As partes críticas, que exigem rapidez, serão feitas em C. A interface e demais trechos não-críticos desejo fazer em Python (pois, penso ser mais fácil). Por fim, compilar tudo isso para um executável Windows de tal forma que eu possa levá-lo para qualquer máquina sem o interpretador.

O que pensam disso? Viagem total? Tiro no próprio pé? :huh:

Vlw!

Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 0

eu tive uma duvida mais ou menos parecida, mas ninguém respondeu

acho q presta eu tava fazendo uns teste com C e Python esses dias e ficou legal.

o negocio é que aqui ninguém ajuda e o que ajuda so aparece de 100 em 100 anos

Link to post
Share on other sites
  • 0

eu num sei se essa é a maneira certa de integração entre c e python mais de qualquer jeito aí vai.

eu tava fazendo uns teste com dll, tava dando pau mais eu resolvi, a dll tinha uma função muito dificil de se entender (retornar a soma de dois valores, dificil hein? hehuaHEU)

eu usei o devcpp pra fazer a dll

esse é o arquivo soma.h

#define _soma_H_

#ifdefine _soma_H_
extern "C" __declspec(dllexport) int SOMA(int v1, int v2);
#endif
e esse o soma.cpp
#include <stdio.h>

extern "C" __declspec(dllexport) int SOMA(int v1, int v2){
    return v1 + v2;
}
olhe pra ver se a dll está na pasta do projeto, senão salve o projeto e feche o programa, depois abra e tente compilar denovo agora as linhas em python "soma.py"
import ctypes # importa o modulo

#para mais detalhes sobre o ctypes olhe a documentação do python

soma = ctypes.CDLL('soma.dll') # chama a dll você poderia usar ctypes.cdll.LoadLibrary('soma.dll')
soma.SOMA.restype = ctypes.c_int # define para que SOMA seja inteiro (acho q é isso que significa)

# o resto é coisa do programa
v1 = input('Digite um numero: ') # use input e não raw_input
v2 = input('Digite outro: ')

print soma.SOMA(v1, v2)
raw_input()

se num for isso então que outro alguém explique porque eu mermo num sei não :closedeyes:

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Cloud Computing


  • Forum Statistics

    • Total Topics
      148691
    • Total Posts
      644530
×
×
  • Create New...