欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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 中同一個類兩個函數(shù)間變量的調(diào)用方法

    在Python 中同一個類兩個函數(shù)間變量的調(diào)用方法

    今天小編就為大家分享一篇在Python 中同一個類兩個函數(shù)間變量的調(diào)用方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python下載ts文件視頻且合并的操作方法

    Python下載ts文件視頻且合并的操作方法

    ts文件,ts即"Transport?Stream"的縮寫,特點就是要求從視頻流的任一片段開始都是可以獨立解碼的,非常適合網(wǎng)絡(luò)視頻播放,這篇文章主要介紹了Python下載ts文件視頻且合并,需要的朋友可以參考下
    2023-01-01
  • Python中關(guān)于面向?qū)ο笏接袑傩苑椒ǖ脑敿氈v解

    Python中關(guān)于面向?qū)ο笏接袑傩苑椒ǖ脑敿氈v解

    在實際開發(fā)中,對象的某些屬性或方法可能只希望在對象的內(nèi)部被使用,而不希望在外部被訪問到,私有屬性就是對象不希望公開的屬性,私有方法就是對象不希望公開的方法
    2021-10-10
  • python使用列表的最佳方案

    python使用列表的最佳方案

    這篇文章主要介紹了python使用列表的最佳方式,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-08-08
  • Python 批量驗證和添加手機號碼為企業(yè)微信聯(lián)系人

    Python 批量驗證和添加手機號碼為企業(yè)微信聯(lián)系人

    你是否也有過需要添加很多微信好友的時候,一個個輸入添加太麻煩了,本篇文章手把手教你用Python替我們完成這繁瑣的操作,大家可以在過程中查缺補漏,看看自己掌握程度怎么樣
    2021-10-10
  • 淺談如何使用Python控制手機(一)

    淺談如何使用Python控制手機(一)

    這篇文章主要為大家介紹了如何使用Python控制手機,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • python繪制簡單直方圖的方法

    python繪制簡單直方圖的方法

    這篇文章主要為大家詳細介紹了python繪制簡單直方圖的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • python實現(xiàn)順時針打印矩陣

    python實現(xiàn)順時針打印矩陣

    這篇文章主要為大家詳細介紹了python實現(xiàn)順時針打印矩陣,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • python3實現(xiàn)逐字輸出的方法

    python3實現(xiàn)逐字輸出的方法

    今天小編就為大家分享一篇python3實現(xiàn)逐字輸出的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • python實現(xiàn)去掉字符串中的\xa0、\t、\n

    python實現(xiàn)去掉字符串中的\xa0、\t、\n

    這篇文章主要介紹了python實現(xiàn)去掉字符串中的\xa0、\t、\n方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08

最新評論