注:本文參考了博文:
python功能強大,擁有豐富的庫,可以輕而易舉的做很多用c、c++等重量級語言不太方便做到的事情,因為如果在c語言中呼叫python指令碼,則會分發揮python的優點,而且很重要的一點,由於python是解釋執行,如果python中的模組發生改變,不需要重新編譯源**,靈活性比c更高。
實際上c語言呼叫python還是比較方便的,本質上就是上c語言模組所在程序成為python的執行環境就好了,今天試驗了一把,比較順利。我的驗證環境是vs2008+python2.7。
首先用python寫了乙個指令碼,pytest.py,裡面定義了乙個add函式,如下:
在主函式中,通過呼叫python提供的#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)
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...