一:環境vs2015,python3.7,windows 64位作業系統
三:新建vs控制台工程,並在工程目錄下建立pymodule.py檔案
四:編寫pymodule.py檔案,**如下:
def retnum():
return 12345
def retdouble():
return 12345.6789
def retstring():
return "hello,world!"
def retustring():
return "你好,中國!".encode("gb18030")
def retlist():
return [1,2,3,4,5]
def rettuple():
return (1,2,"hello,world!")
def retdict():
d = dict()
d[1] = "c"
d[2] = "c++"
d[3] = "python"
return d
五:編寫c++檔案,呼叫python模組。
//#include "stdafx.h"
#include #include using namespace std;
int main()
pfunc = pyobject_getattrstring(pmodule, "retnum"); //呼叫retnum函式,返回整型
if (pfunc && pycallable_check(pfunc))
pfunc = pyobject_getattrstring(pmodule, "retdouble"); //呼叫retdouble,返回double型別
pret = pyobject_callobject(pfunc, null);
cout << pyfloat_asdouble(pret) << endl;
pfunc = pyobject_getattrstring(pmodule, "retstring"); //呼叫retstring,返回ansi字串
pret = pyobject_callobject(pfunc, null);
cout << pyunicode_asutf8(pret) << endl;
pfunc = pyobject_getattrstring(pmodule, "retustring"); //呼叫retustring,返回unicode字串
pret = pyobject_callobject(pfunc, null);
cout << pybytes_asstring(pret) << endl;
pfunc = pyobject_getattrstring(pmodule, "retlist"); //呼叫retlist,返回陣列型別。
pret = pyobject_callobject(pfunc, null);
_int64 val_num = pylist_size(pret);
for (int i = 0; i < val_num; i++)
cout << endl;
pfunc = pyobject_getattrstring(pmodule, "rettuple"); //呼叫rettuple,返回tuple型別
int w = 0, h = 0;
char *ret_str;
pret = pyobject_callobject(pfunc, null);
pyarg_parsetuple(pret, "iis", &w, &h, &ret_str); //多個值必須一一對應
cout << w << " " << h << " " << ret_str << endl;
pfunc = pyobject_getattrstring(pmodule, "retdict"); //呼叫retdict,返回dict型別
pret = pyobject_callobject(pfunc, null);
pyobject* pkeys = pydict_keys(pret);
pyobject* pvalues = pret;
_int64 longlist = pydict_size(pret);
for (int i = 0; i < longlist; i++)
py_finalize();
system("pause");
return 0;}
C 呼叫Python模組
當下,c 與python都是比較熱門的計算機程式語言,他們各有優缺點,如果能讓他們互相配合工作,那是多麼美好的事情,今天我來講解一下如何利用c 來呼叫python。如果讓c 支援呼叫python模組,我們首先需要安裝一些擴充套件,這裡推薦使用ironpython庫。第二步,我們新建乙個c 窗體專案,...
C 呼叫 Python模組
vs2013 python27 x86 1 引入標頭檔案和庫 將python安裝目錄下的include和libs資料夾引入到專案中 將libs目錄下的python27.lib複製乙份為python27 d.lib 2 測試指令碼 python指令碼如下 def hello print hello d...
Python 模組呼叫
模組 py 字尾的檔案即模組 類 使用class語句封裝乙個類 函式 使用def語句封裝乙個函式 變數 使用賦值語句賦值乙個變數 模組中不但可以直接存放變數,還能存放函式,還能存放類。還可以使用自己寫的模組 其實就是字尾名為.py的檔案 通過這個語句可以從模組中匯入指定的部分到當前的模組。例如 檔案...