C 呼叫python指令碼函式基本應用指南

2021-05-24 12:31:15 字數 1330 閱讀 1584

c++呼叫python指令碼函式**如下:

py_initialize(); //初始化 python interpreter  

pyobject *pname = pystring_fromstring("test1"); // python指令碼檔名  

pyobject *pmodule = pyimport_import(pname); // import 指令碼,返回pmodule  

// pmodule指向這個指令碼物件   

if ( !pmodule )  

cout<

<"get the function in .py"<

<

endl;   

pyobject *pdict = pymodule_getdict(pmodule); // 通過pmodule得到dictionary  

// 的指標pdict  

pyobject *pfunc = pydict_getitemstring(pdict,"add"); 

// 通過pdict得到你所需的  

// function,此處"add"為test1.py  

// 的乙個funciton object  

pyobject *pparam = pytuple_new(1); // 填寫function所需要的引數  

pyobject *pcurparam = pyint_fromlong(10);  

pytuple_set_item(pparam,0,pcurparam);  

pyobject *padded = pyobject_callobject(pfunc,pparam);

// 呼叫此function,並得到  

// 返回值  

int max = pyint_aslong(padded); // 將返回值轉換為c++的資料型別  

cout<

<"after added ,the number is "<

<

max<

<

endl;  

py_xdecref(padded); // 引用計數減一  

py_xdecref(pcurparam);  

py_xdecref(pparam);  

// py_xdecref(pfunc);  

// py_xdecref(pdict);  

py_xdecref(pmodule);  

py_xdecref(pname);  

py_finalize(); // 關閉   

python interpreter 

Lua 指令碼呼叫 C 函式

上篇說到 c 程式裡呼叫lua 函式,此篇講lua 指令碼裡呼叫c 函式。lua要呼叫c 程式裡的函式,這些函式必須有同樣的原型 typedef int luafunc lua state l 結合工作上的業務來實現乙個簡單的lua 呼叫 c 函式的例子,業務是上這樣的,有一可攜式裝置向我們的裝置傳...

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

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

UE4 Python呼叫c 指令碼函式

1 新建乙個c 工程,建立乙個testpy指令碼,父類見下圖 件 pragma once include coreminimal.h include kismet blueprintfunctionlibrary.h include testpy.generated.h uclass class c...