Ir para conteúdo
Fórum Script Brasil
  • 0

Integração entre C/Python


katrash

Pergunta

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 para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...