c++呼叫python指令碼函式**如下:
py_initialize(); //初始化 python interpreterpyobject *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...