日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
Python嵌入C++來(lái)彌補(bǔ)C++本身不足之處的方案介紹

C++在實(shí)際操作中有很多的蹩腳的地方,如果把Python嵌入C++的話(huà),就可以來(lái)彌補(bǔ)C++本身的一些不足之處,通過(guò)Python嵌入C++來(lái)提高其程序靈活性,以下就是相關(guān)實(shí)際操作步驟的相關(guān)介紹。

我們提供的服務(wù)有:成都做網(wǎng)站、成都網(wǎng)站制作、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、壽寧ssl等。為上1000+企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢(xún)和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的壽寧網(wǎng)站制作公司

1、安裝Python

1.1 在 Windows上安裝Python:

直接去相關(guān)的網(wǎng)站下載一個(gè)安裝包python-2.5.1.msi(***版本),雙擊安裝文件就可以了。

1.2 在linux上安裝Python:

在linux上開(kāi)發(fā),下載原碼,通過(guò)原碼安裝需要執(zhí)行configure, make, make install幾個(gè)步驟,我下載安裝的是python-2.4.tgz 。

2、開(kāi)發(fā)的前期工作

在win32環(huán)境,在VC Directories中加入Python安裝后的Lib和Include;在linux環(huán)境 Lib和Include是通過(guò)gcc指定。

3.編寫(xiě)Python腳本

Python函數(shù)的編寫(xiě)不難,可以用文本編輯器,也可以用IDLE (Python官方提供)。下面是一個(gè)簡(jiǎn)單的2個(gè)數(shù)相加的python腳本:

 
 
 
  1. def PyAdd(x, y)  
  2. nSum = x + y  
  3. print "Sum = ", nSum  
  4. return nSum 

4. C++中調(diào)用嵌入的Python腳本

4.1 引入頭文件

win32/linux需要引入Python頭文件

 
 
 
  1. ifdef WIN32  
  2. #include "Python.h"   
  3. #else  
  4. #include "/usr/src/Python-2.4/Include/Python.h"  
  5. #endif 

4.2 在Python嵌入C++來(lái)彌補(bǔ)C++本身的一些缺點(diǎn)的過(guò)程中需要有C++調(diào)用Python前需要初始化,程序結(jié)束前要關(guān)閉Python

初始化Python Py_Initialize();

關(guān)閉Python Py_Finalize();

4.3 linux環(huán)境需要在Py_Initialize后引入python庫(kù)的代碼

 
 
 
  1. #ifndef WIN32  
  2. PyRun_SimpleString("import sys");   
  3. PyRun_SimpleString("sys.path.append('./')");   
  4. PyRun_SimpleString("import os");  
  5. PyRun_SimpleString("import string");  
  6. #endif 

具體引入什么庫(kù)根據(jù)需要定。

4.4 C++嵌入Python的準(zhǔn)備工作做好后的C++編程為了調(diào)用Python函數(shù)擴(kuò)展性比較好,特寫(xiě)了一個(gè)CallPyFunction函數(shù),通過(guò)它調(diào)用Python函數(shù),Python腳本文件名,函數(shù)名,參數(shù)都有CallPyFunction外傳入,下面代碼為CallPyFunction的核心代碼,代碼中未包含錯(cuò)誤處理

 
 
 
  1. int CallPyFunction(const char *pszModuleName,  
  2. const char *pModulFuncName,  
  3. const char *pParam[],  
  4. const int nCount)  
  5. {  
  6. PyObject *pName = NULL;  
  7. PyObject *pModule = NULL;  
  8. PyObject *pDict = NULL;  
  9. PyObject *pFunc = NULL;  
  10. PyObject *pParams = NULL;  
  11. PyObject *pCurrParam = NULL;   
  12. int i = 0;  
  13. pName = PyString_FromString(pszModuleName);   
  14. pModule = PyImport_Import(pName);   
  15. pDict = PyModule_GetDict(pModule);  
  16. pFunc = PyDict_GetItemString(pDict, pModulFuncName);   
  17. pParams = PyTuple_New(nCount);  
  18. i = 0;  
  19. while (i < nCount)  
  20. {  
  21. pCurrParam = PyString_FromString(pParam[i]);   
  22. PyTuple_SetItem(pParams, i, pCurrParam);   
  23. i++;  
  24. }  
  25. PyObject *pFtp= PyObject_CallObject(pFunc, pParams);  
  26. return true;  
  27. }   

以上就是對(duì)把Python嵌入C++來(lái)彌補(bǔ)C++本身的一些缺點(diǎn)的部分內(nèi)容的的介紹,望你會(huì)有所收獲。


新聞名稱(chēng):Python嵌入C++來(lái)彌補(bǔ)C++本身不足之處的方案介紹
標(biāo)題來(lái)源:http://www.dlmjj.cn/article/cdgsspg.html