91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python C/C++怎么使用ctypes編寫拓展

發布時間:2021-11-10 09:35:11 來源:億速云 閱讀:155 作者:柒染 欄目:大數據

今天就跟大家聊聊有關Python C/C++怎么使用ctypes編寫拓展,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

ctypes 是一個Python 標準庫中的一個庫.為了實現調用 DLL,或者共享庫等C數據類型而設計.它可以把這些C庫包裝后在純Python環境下調用.本教程是在MAC下進行的.

C++代碼

#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);
}        
 

因為系統不同,調用方式不同
_WIN32:表示win32和win64
__declspec(dllexport)用于Windows中的動態庫中,聲明導出函數、類、對象等供外面調用。
extern "C" 的作用是讓 C++ 編譯器將 extern "C" 聲明的代碼當作 C 語言代碼處理,可以避免 C++ 因符號修飾導致代碼不能和C語言庫中的符號進行鏈接的問題。

 

將C++文件編譯成so文件

g++ -fPIC -shared -o ctypes ctypes.cpp
 

windows用戶可以使用Visual studio 2015編譯生成dll文件。
在mac和linux沒有dll文件,一般都是so文件。

 

Python代碼調用

from  ctypes import *
lib=CDLL("ctypes")
lib.CtypesDemo("公眾號:Python學習開發",4,5)

關于ctype是的基本用法大概就這么多,實際上在編寫Python拓展庫的時,如果要最終生成Python模塊并導入使用,就要遵循Python API進行編寫,所有的函數定義都是遵循一定的規則。

看完上述內容,你們對Python C/C++怎么使用ctypes編寫拓展有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

嘉善县| 海晏县| 嵊州市| 新疆| 从化市| 清镇市| 合作市| 高密市| 航空| 马鞍山市| 平凉市| 香河县| 阿克| 台中县| 宁城县| 中山市| 德昌县| 金沙县| 六枝特区| 康定县| 从江县| 始兴县| 高安市| 永吉县| 志丹县| 永福县| 曲沃县| 略阳县| 信宜市| 蕲春县| 广宗县| 项城市| 梅河口市| 内江市| 泗洪县| 石狮市| 高州市| 宜春市| 洞口县| 阿勒泰市| 鸡泽县|