C語言呼叫Python指令碼中的函式

2021-06-22 20:13:11 字數 1107 閱讀 4392

注:本文參考了博文:

python功能強大,擁有豐富的庫,可以輕而易舉的做很多用c、c++等重量級語言不太方便做到的事情,因為如果在c語言中呼叫python指令碼,則會分發揮python的優點,而且很重要的一點,由於python是解釋執行,如果python中的模組發生改變,不需要重新編譯源**,靈活性比c更高。

實際上c語言呼叫python還是比較方便的,本質上就是上c語言模組所在程序成為python的執行環境就好了,今天試驗了一把,比較順利。我的驗證環境是vs2008+python2.7。

首先用python寫了乙個指令碼,pytest.py,裡面定義了乙個add函式,如下:

#pytest

def add(a,b):

print "in python function add"

return a+b+1

//#include "stdafx.h"

#include "python.h"

int pycall( const char * module, const char * function, const char *format, ... )

//查詢函式

if( !(pfunc = pyobject_getattrstring(pmod, function) ) )

//建立引數

va_list vargs;

va_start( vargs, format );

pparm = py_vabuildvalue( format, vargs );

va_end(vargs);

//函式呼叫

pretval = pyeval_callobject( pfunc, pparm);

int ret;

pyarg_parse( pretval, "i", &ret );

return ret;

}int _tmain(int argc, _tchar* argv)

在主函式中,通過呼叫python提供的

pyeval_callobject方法實現了,呼叫pytest中的add函式。

in python function add

ret = 101

黃聰 C 中呼叫python指令碼語言

1.安裝ironpython 2.建立專案 建立乙個c 的控制台應用程式。新增引用 瀏覽到ironpython的安裝目錄中,新增對ironpython.dll,microsoft.scripting.dll 兩個dll的引用。3.新增python檔案到當前的專案中 def welcome name ...

講述C 中呼叫Python指令碼

c 中呼叫python指令碼的意義就不講了,至少你可以把它當成文字形式的動態鏈結庫,需要的時候還可以改一改,只要不改變介面,c 的程式一旦編譯好了,再改就沒那麼方便了 先看python的 test function def add a,b print in python function add p...

C語言呼叫SHELL指令碼

在linux 環境下shell指令碼具有非常強大的功能!使用shell可以很方便的使用和管理linux系統,最近學習了一點shell知識,所以一直在 想要是可以在c c 中呼叫shell指令碼那該有多好啊!因為使用c c 要幾百行 才能搞定的!使用shell只要短短十幾行就可以輕鬆搞定!includ...