• 0
Sign in to follow this  
katrash

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!

Share this post


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

Share this post


Link to post
Share on other sites
  • 0

Falai EMX!

Você disse que tem uma dúvida parecida; Você mesclou trechos em C e Python?

Se for isso, dá uma dica ai por favor, para eu saber onde procurar.

Vlw!

Share this post


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:

Share this post


Link to post
Share on other sites
  • 0

Valeu EMX!

Este é um ótimo ponto de partida. Em breve farei alguns testes.

Qualquer novidade, posta aqui.

Boa sorte com seus testes.

Obrigado pelos exemplos. Agradeço muito! :rolleyes:

Share this post


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.

Sign in to follow this