最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python引用DLL文件的方法

 更新時間:2015年05月11日 15:43:12   作者:像風(fēng)一樣的自由  
這篇文章主要介紹了python引用DLL文件的方法,涉及Python調(diào)用dll文件的相關(guān)技巧,需要的朋友可以參考下

本文實例講述了python引用DLL文件的方法。分享給大家供大家參考。具體分析如下:

在python中調(diào)用dll文件中的接口比較簡單,如我們有一個test.dll文件,內(nèi)部定義如下:

extern "C" 
{ 
int __stdcall test( void* p, int len) 
{  
return len; 
} 
}

在python中我們可以用以下兩種方式載入

1.

import ctypes
dll = ctypes.windll.LoadLibrary( 'test.dll' )

2.

import ctypes
dll = ctypes.WinDll( 'test.dll' )

其中ctypes.windll為ctypes.WinDll類的一個對象,已經(jīng)在ctypes模塊中定義好的。在test.dll中有test接口,可直接用dll調(diào)用即可

nRst = dll.test( )
print nRst

由于在test這個接口中需要傳遞兩個參數(shù),一個是void類型的指針,它指向一個緩沖區(qū)。一個是該緩沖區(qū)的長度。因此我們要獲取到python中的字符串的指針和長度

#方法一:
sBuf = 'aaaaaaaaaabbbbbbbbbbbbbb'
pStr = ctypes.c_char_p( )
pStr.value = sBuf
pVoid = ctypes.cast( pStr, ctypes.c_void_p ).value
nRst = dll.test( pVoid, len( pStr.value) )
#方法二:
test = dll.test
test.argtypes = [ctypes.c_char_p, ctypes.c_int]
test.restypes = ctypes.c_int
nRst = test(sBuf, len(sBuf))

如果修改test.dll中接口的定義如下:

extern "C" 
{ 
  int __cdecl test( void* p, int len)
  { 
    return len; 
  } 
}

由于接口中定義的是cdecl格式的調(diào)用,所以在python中也需要用相應(yīng)的類型

1.  

import ctypes
dll = ctypes.cdll.LoadLibrary( 'test.dll' )
##注:一般在linux下為test.o文件,同樣可以使用如下的方法: 
##dll =ctypes.cdll.LoadLibrary('test.o')

2. 

import ctypes
dll = ctypes.CDll( 'test.dll' )

希望本文所述對大家的Python程序設(shè)計有所幫助。

相關(guān)文章

  • python光學(xué)仿真學(xué)習(xí)wxpython創(chuàng)建手速測試程序

    python光學(xué)仿真學(xué)習(xí)wxpython創(chuàng)建手速測試程序

    這篇文章主要介紹了python光學(xué)仿真學(xué)習(xí)使用wxpython創(chuàng)建一個手速測試程序示例的實現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-10-10
  • Python?pyecharts?數(shù)據(jù)可視化模塊的配置方法

    Python?pyecharts?數(shù)據(jù)可視化模塊的配置方法

    Echarts 是一個由百度開源的數(shù)據(jù)可視化,憑借著良好的交互性,精巧的圖表設(shè)計,得到了眾多開發(fā)者的認(rèn)可,這篇文章主要介紹了Python?pyecharts?數(shù)據(jù)可視化模塊,需要的朋友可以參考下
    2022-09-09
  • 詳解Python中下劃線的5種含義

    詳解Python中下劃線的5種含義

    本文介紹了Python中單下劃線和雙下劃線的各種含義和命名約定,名稱修飾的工作原理,以及它如何影響你自己的Python類,感興趣的可以了解一下
    2021-07-07
  • python用戶管理系統(tǒng)的實例講解

    python用戶管理系統(tǒng)的實例講解

    下面小編就為大家分享一篇python用戶管理系統(tǒng)的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • python通過pip更新所有已安裝的包實現(xiàn)方法

    python通過pip更新所有已安裝的包實現(xiàn)方法

    下面小編就為的帶來一篇python通過pip更新所有已安裝的包實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • 如何準(zhǔn)確判斷請求是搜索引擎爬蟲(蜘蛛)發(fā)出的請求

    如何準(zhǔn)確判斷請求是搜索引擎爬蟲(蜘蛛)發(fā)出的請求

    我們的網(wǎng)站經(jīng)常被各種蜘蛛爬蟲光顧,由于這些爬蟲都有UserAgent,所以很多朋友使用UserAgent判斷請求的發(fā)起者是否是搜索引擎爬蟲的方式是很不準(zhǔn)確的,接下來,通過本篇文章給大家介紹準(zhǔn)確判斷請求是搜索引擎爬蟲(蜘蛛)發(fā)出的請求的方法,需要的朋友可以參考下
    2015-10-10
  • python實現(xiàn)幾種歸一化方法(Normalization Method)

    python實現(xiàn)幾種歸一化方法(Normalization Method)

    這篇文章主要介紹了python實現(xiàn)幾種歸一化方法(Normalization Method),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python操作MySQL簡單實現(xiàn)方法

    Python操作MySQL簡單實現(xiàn)方法

    這篇文章主要介紹了Python操作MySQL簡單實現(xiàn)方法,通過一個簡單的實例講述了Python針對mysql數(shù)據(jù)庫的增刪改查技巧,需要的朋友可以參考下
    2015-01-01
  • python dataframe如何選擇某一列非空的行

    python dataframe如何選擇某一列非空的行

    這篇文章主要介紹了python dataframe如何選擇某一列非空的行問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • python線程中同步鎖詳解

    python線程中同步鎖詳解

    這篇文章主要為大家詳細(xì)介紹了python線程中同步鎖的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04

最新評論

汶川县| 罗江县| 宁晋县| 巴青县| 喜德县| 五大连池市| 汝城县| 商水县| 九龙坡区| 巴南区| 遵义市| 昌宁县| 安塞县| 博乐市| 哈巴河县| 镇沅| 册亨县| 井冈山市| 顺昌县| 温宿县| 阳东县| 富阳市| 道真| 封丘县| 西城区| 泸州市| 桐城市| 延吉市| 黔西| 孟津县| 辛集市| 沙湾县| 宜兴市| 吉木乃县| 绥芬河市| 轮台县| 乌拉特前旗| 高州市| 东乌| 巴里| 永泰县|