日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
Python嵌入C++來彌補C++本身不足之處的方案介紹

C++在實際操作中有很多的蹩腳的地方,如果把Python嵌入C++的話,就可以來彌補C++本身的一些不足之處,通過Python嵌入C++來提高其程序靈活性,以下就是相關實際操作步驟的相關介紹。

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

1、安裝Python

1.1 在 Windows上安裝Python:

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

1.2 在linux上安裝Python:

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

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

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

3.編寫Python腳本

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

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

4. C++中調用嵌入的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++來彌補C++本身的一些缺點的過程中需要有C++調用Python前需要初始化,程序結束前要關閉Python

初始化Python Py_Initialize();

關閉Python Py_Finalize();

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

 
 
 
  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 

具體引入什么庫根據需要定。

4.4 C++嵌入Python的準備工作做好后的C++編程為了調用Python函數擴展性比較好,特寫了一個CallPyFunction函數,通過它調用Python函數,Python腳本文件名,函數名,參數都有CallPyFunction外傳入,下面代碼為CallPyFunction的核心代碼,代碼中未包含錯誤處理

 
 
 
  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. }   

以上就是對把Python嵌入C++來彌補C++本身的一些缺點的部分內容的的介紹,望你會有所收獲。


新聞標題:Python嵌入C++來彌補C++本身不足之處的方案介紹
文章位置:http://www.5511xx.com/article/cdgsspg.html