PDA

View Full Version : استفاده تعاملی c , python



m.j_banitaba
چهارشنبه 04 تیر 1393, 23:54 عصر
در جریان یک پروژه نیاز داشتم تا کدهای python را مثل یک dll در برنامه دیگر استفاده کنم برای انجام اینکار می توان از هدر python.h استفاده کرد که در پوشه pythonXX\include قرار دارد استفاده کنید.
کد مثال آن هم:
#include<Python.h>int main(int argc, char*argv[]){
Py_Initialize();
PyRun_SimpleString("import mymodule");
.foo()PyRun_SimpleString("mymodule");
Py_Finalize(); return 0; }



اگر از tcc برای کامپال استفاده می کنید باید ابتدا فایل def را بسازید


tiny_impdef.exe c:\WINDOWS\system32\pythonXX.dll

سپس آن را جهت کامپایل استفاده کنید:

tcc tiny.c pythonXX.def -IC:\PythonXX\include -LC:\PythonXX\libs

همچنین اگر بخواهید از توابع c نوشته شده در کد واسط در python بهره ببرید کافی است از کتابخانه ctypes.CDLL استفاده کرده و هندل فایل فراخواننده را بدست آورید سپس می توانید توابع export شده را فراخوانی کنید.جهت export شدن یک فایل هم باید در کد c می توانید از پیشوند PyMODINIT_FUNC استفاده کنید.

PyMODINIT_FUNC foo(void)