国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
當前位置: 首頁 - 科技 - 知識百科 - 正文

python引用DLL文件的方法

來源:懂視網 責編:小采 時間:2020-11-27 14:33:28
文檔

python引用DLL文件的方法

python引用DLL文件的方法:本文實例講述了python引用DLL文件的方法。分享給大家供大家參考。具體分析如下: 在python中調用dll文件中的接口比較簡單,如我們有一個test.dll文件,內部定義如下: extern C { int __stdcall test( void* p, int len) { r
推薦度:
導讀python引用DLL文件的方法:本文實例講述了python引用DLL文件的方法。分享給大家供大家參考。具體分析如下: 在python中調用dll文件中的接口比較簡單,如我們有一個test.dll文件,內部定義如下: extern C { int __stdcall test( void* p, int len) { r

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

在python中調用dll文件中的接口比較簡單,如我們有一個test.dll文件,內部定義如下:

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類的一個對象,已經在ctypes模塊中定義好的。在test.dll中有test接口,可直接用dll調用即可

nRst = dll.test( )
print nRst

由于在test這個接口中需要傳遞兩個參數,一個是void類型的指針,它指向一個緩沖區。一個是該緩沖區的長度。因此我們要獲取到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格式的調用,所以在python中也需要用相應的類型

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程序設計有所幫助。

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

python引用DLL文件的方法

python引用DLL文件的方法:本文實例講述了python引用DLL文件的方法。分享給大家供大家參考。具體分析如下: 在python中調用dll文件中的接口比較簡單,如我們有一個test.dll文件,內部定義如下: extern C { int __stdcall test( void* p, int len) { r
推薦度:
標簽: 調用 python dll文件
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top 主站蜘蛛池模板: 亚洲欧美日韩综合在线播放 | 久久综合精品国产一区二区三区无 | 亚洲色图欧美色 | 国产在线视频在线 | 亚洲精品国产字幕久久vr | 亚洲女同一区二区 | 欧美亚洲三级 | 九九热国产 | 在线精品福利 | 国产成人精品久久一区二区三区 | 国产 高清 在线 | 一级黄网站 | 在线播放精品一区二区啪视频 | 欧美日韩 在线播放 | 日韩欧美高清 | 国产欧美日韩一区二区三区 | 精品国产综合区久久久久99 | 久久久久久亚洲精品中文字幕 | 日本欧美一区二区三区不卡视频 | 久久久久久久国产精品 | 午夜在线免费视频 | 国产欧美日韩精品在线 | 日韩网站 | 日韩欧美一区二区三区在线 | 美女视频黄a视频全免费网站色 | 欧美视频一区二区三区在线观看 | 韩国精品一区 | 日本欧美一区二区 | 99国产精品一区二区 | 国产精选在线观看 | 亚洲一区自拍 | 欧美综合在线视频 | 欧美色综合图区 | 国产免费一级片 | 亲子交尾五十路 | 欧美精品国产日韩综合在线 | a一区二区三区视频 | 热久久国产 | 久久夜色精品国产亚洲 | 国产麻豆精品免费密入口 | 日本成人一区 |