公告版位

目前分類:Python (4)

瀏覽方式: 標題列表 簡短摘要

一、Python與C/C++之間的溝通方法,除了Extending Python的方式外;在Python 2.5之後提供

      ctype module可以直接在Python中使用CDLL方法(Method)來載入C/C++的動態連結資料庫(DLL)。

 

二、在不同的作業平台中利用ctype module來使用基本的C/C++的函式則必須載入想對應的C/C++ DLL:

2-1、Windows Platform: msvcrt.dll

        2-2、 Linux Platform: libc.so.6

 

三、如何在Python中自訂與C/C++相同的資料結構(Data Structure)並進行資料的傳遞,其方法下列兩種:

3-1、直接定義:在class中直接定義完所需的欄位(Fields)

EX:class ClassName(Structure):

yunjuihuang 發表在 痞客邦 留言(0) 人氣()

一、本文接續Extending Python with C/ C++ (一) 的內容進階的說明下列三項內容:

1-1、如何在Python中使用自訂的方法(Method)當成Callback function的方法來呼叫C函式。

1-2、如何提供自訂的Python物件及建立該物件內的方法(Method)

        1-3、如何以繼承的方式自訂新的Python物件及建立該物件內的方法(Method)


二、建立一個提供給Python使用的C語言函式並包含Callback function的參數:

2-1、首先是使用PyArg_ParseTuple來接收由Python所傳遞的方法(Method)物件及參數。

EX. PyArg_ParseTuple(args,"Oi",&Pycallback,&waittime ); 

yunjuihuang 發表在 痞客邦 留言(0) 人氣()

一、Embedded Python With C/C++主要的目的是讓C/C++所撰寫的程式可以透過特定的方式(Method)

      來運用Python相關的Module,使得Python與C/C++在整合開發上更加的便利。

 

二、Python是由C/C++為基礎所撰寫因此相關的資料結構可以使用Python.h的檔案和相關的函式可以使用

      Python31.lib (Python Ver 3.1.2)

 

三、在C/C++程式中使用Python相關的Module有下列五個步驟:

  3-1 初始化Python的直譯器: Py_Initialize()

   3-2 載入所需的Python Module: 

MODULE_OBJECT = PyImport_importModule("Module Name");

yunjuihuang 發表在 痞客邦 留言(0) 人氣()

一、Extending Python With C/C++ 主要是藉由C語言撰寫的外包函式庫(Wrapper Function Library)

      來提供Python Code 和 C library之間的溝通;而所謂的外包函式即是將原本C語言的資料結構轉換成

      Python的資料結構。

 

二、Python是由C語言為基礎所撰寫因此相關的資料結構可直接使用Python.h的檔案和相關的函式可以使用

      Python31.lib (Python Ver 3.1.2)。

 

三、撰寫外包函式庫(Wrapper Function of Python Library)有下列三個步驟:

      3-1 Initial PyModule 一 xxxx表示Module Name

      PYTHON27 : 

yunjuihuang 發表在 痞客邦 留言(0) 人氣()