在了解下面的函式之前有必要了解一下**pyobject***指標,python裡面幾乎所有的物件都是使用這個指標來指示的。
py_initialize()&&py_finalize()
在呼叫任何python的c函式之前需要呼叫的函式,「py_initialize」是用來初始化python模組的,推測是載入初始化載入dll的。對應的在使用python模組之後用「py_finalize」來釋放模組。pyimport_importmodule()
用來載入乙個python模組,這個模組就是一般的python檔案。這裡需要注意的是,在載入這個模組的時候會執行模組裡面所有可以執行的語句。包括import匯入語句和在函式體之外的所有語句pyobject_getattrstring()
返回模組裡面的函式py_buildvalue()
建立乙個引數元組,一般都是用這個函式來建立元組,然後將這個元組作為引數傳遞給python裡面的函式。pyeval_callobject()
呼叫函式,並把「py_buildvalue」建立的元組作為引數傳遞給被呼叫的函式下面的例項是在c++**中呼叫python的函式,傳遞引數並且獲取返回值
test.cpp**
#include
#include
using namespace std;
int main(int argc, char* argv)
pfunc = pyobject_getattrstring(pmodule, "main");
if (!pfunc)
pparam = py_buildvalue("(s)", "hehehe");
presult = pyeval_callobject(pfunc,pparam);
if(presult)
}py_decref(pparam);
py_decref(pfunc);
py_finalize();
//cout
<< "hello"
<< endl;
return
0;}
test_python.py**
def
main
(szstring):
return ("hello", 5)
c 實現嵌入 exe檔案到程式中
其實也不算是嵌入,只是單單的將乙個exe檔案或者任何乙個型別的檔案,通過16進製制來表示。然後這個16進製制的檔案再使用的時候先生成。然後程式呼叫。cpp view plain copy print?test.cpp 定義控制台應用程式的入口點。include stdafx.h include us...
c 中嵌入python入門1
本人是用vc2003 python2.5學習的,其它的也應該差不了多少 1.開始程式設計了 include 第一步就是包含python的標頭檔案 2.看乙個很簡單的例子 1 python檔案test.py,很簡單的定義了乙個函式 filename test.py def hello print he...
c 中嵌入python入門3
c 中嵌入python入門3 這次主要講講怎麼把python中的class嵌入到c 中去。順便講講元組的操作和怎麼編譯python源 1.首先講講元組的操作 由於引數是通過元組傳進去的,所以我們不能老是通過py buildvalue這個函式來操作元組,那樣太不方便了。python提供了元組相關的操作...