一、 安裝python3.7python
二、 Vs2010中配置python:函數
三、添加頭文件:#include <Python.h>ui
四、問題:error LNK2001: 沒法解析的外部符號 __imp__Py_Initialize@0spa
緣由: 因爲Python版本和項目編譯版本不匹配致使這個問題,本文出錯的緣由是3d
解決: 1. 使用 Python x86版本,VS項目更改成Win32,包含目錄及庫目錄一概爲Python x86,可正常編譯指針
2. 使用 Python x64版本,經過配置管理器,在活動解決方案平臺中新建X64平臺,包含目錄及庫目錄一概爲Python x64,可正常編譯orm
解決:在更改VC++目錄時,改每一個目錄要注意把下面的「從父級或項目默認設置繼承」勾選上。對象
VS調用python經常使用接口:blog
void Py_Initialize(void)繼承
初始化Python解釋器,若是初始化失敗,繼續下面的調用會出現各類錯誤,惋惜的是此函數沒有返回值來判斷是否初始化成功,若是失敗會致使致命錯誤。
int Py_IsInitialized(void)
檢查是否已經進行了初始化,若是返回0,表示沒有進行過初始化。
void Py_Finalize()
反初始化Python解釋器,包括子解釋器,調用此函數同時會釋放Python解釋器所佔用的資源。
int PyRun_SimpleString(const char *command)
其實是一個宏,執行一段Python代碼。
PyObject* PyImport_ImportModule(char *name)
導入一個Python模塊,參數name能夠是*.py文件的文件名。相似Python內建函數import。
PyObject* PyModule_GetDict( PyObject *module)
至關於Python模塊對象的dict屬性,獲得模塊名稱空間下的字典對象。
PyObject* PyRun_String(const char* str, int start,PyObject* globals, PyObject* locals)
執行一段Python代碼。
int PyArg_Parse(PyObject* args, char* format, …)
把Python數據類型解析爲C的類型,這樣C程序中才可使用Python裏面的數據。
PyObject* PyObject_GetAttrString(PyObject *o, char*attr_name)
返回模塊對象o中的attr_name 屬性或函數,至關於Python中表達式語句,o.attr_name。
PyObject* Py_BuildValue(char* format, …)
和PyArg_Parse恰好相反,構建一個參數列表,把C類型轉換爲Python對象,使得Python裏面可使用C類型數據。
PyObject* PyEval_CallObject(PyObject* pfunc, PyObject*pargs)
此函數有兩個參數,並且都是Python對象指針,其中pfunc是要調用的Python 函數,通常說來可使用PyObject_GetAttrString()得到,pargs是函數的參數列表,一般是使用Py_BuildValue()來構建。