今天就跟大家聊聊有關(guān)Python C/C++怎么使用ctypes編寫拓展,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
為資溪等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及資溪網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都做網(wǎng)站、網(wǎng)站建設(shè)、資溪網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
ctypes 是一個Python 標準庫中的一個庫.為了實現(xiàn)調(diào)用 DLL,或者共享庫等C數(shù)據(jù)類型而設(shè)計.它可以把這些C庫包裝后在純Python環(huán)境下調(diào)用.本教程是在MAC下進行的.
#include <stdio.h>
#ifdef __cplusplus
#define XETR extern "C"
#else
#define XETR
#endif
#ifdef _WIN32
#define LIB XETR __declspec(dllexport)
#else
#define LIB XETR
#endif
LIB void CtypesDemo(const wchar_t *str,int x,int y){
printf("Cpp %ls %d\n",str,x+y);
}
因為系統(tǒng)不同,調(diào)用方式不同
_WIN32:表示win32和win64
__declspec(dllexport)用于Windows中的動態(tài)庫中,聲明導(dǎo)出函數(shù)、類、對象等供外面調(diào)用。
extern "C" 的作用是讓 C++ 編譯器將 extern "C" 聲明的代碼當作 C 語言代碼處理,可以避免 C++ 因符號修飾導(dǎo)致代碼不能和C語言庫中的符號進行鏈接的問題。
g++ -fPIC -shared -o ctypes ctypes.cpp
windows用戶可以使用Visual studio 2015編譯生成dll文件。
在mac和linux沒有dll文件,一般都是so文件。
from ctypes import *
lib=CDLL("ctypes")
lib.CtypesDemo("公眾號:Python學習開發(fā)",4,5)
關(guān)于ctype是的基本用法大概就這么多,實際上在編寫Python拓展庫的時,如果要最終生成Python模塊并導(dǎo)入使用,就要遵循Python API進行編寫,所有的函數(shù)定義都是遵循一定的規(guī)則。
看完上述內(nèi)容,你們對Python C/C++怎么使用ctypes編寫拓展有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
當前文章:PythonC/C++怎么使用ctypes編寫拓展
轉(zhuǎn)載來于:http://aaarwkj.com/article40/isjoho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設(shè)、網(wǎng)站改版、移動網(wǎng)站建設(shè)、全網(wǎng)營銷推廣、微信公眾號、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)