<strike id="cakm0"></strike>
  • <button id="cakm0"><dl id="cakm0"></dl></button>
  • <samp id="cakm0"><tbody id="cakm0"></tbody></samp>
    <samp id="cakm0"><pre id="cakm0"></pre></samp><ul id="cakm0"></ul>
    <strike id="cakm0"></strike>
    <li id="cakm0"></li>
  • <ul id="cakm0"></ul>
  • 更多精彩內容,歡迎關注:

    視頻號
    視頻號

    抖音
    抖音

    快手
    快手

    微博
    微博

    python調用dll

    文檔

    python調用dll

    python調用dll有兩個方法,一是通過ctypes.windll.LoadLibrary()調用,二是通過ctypes.WinDll()調用。
    推薦度:
    導讀python調用dll有兩個方法,一是通過ctypes.windll.LoadLibrary()調用,二是通過ctypes.WinDll()調用。

    python調用dll怎么操作?一起來看看小編今天的分享吧!

    python調用dll有兩個方法,一是通過ctypes.windll.LoadLibrary()調用,二是通過ctypes.WinDll()調用。

    例如假設我們存在一個test.dll文件:

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

    方法一:

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

    方法二:

    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調用dll

    python調用dll有兩個方法,一是通過ctypes.windll.LoadLibrary()調用,二是通過ctypes.WinDll()調用。
    推薦度:
    為你推薦
    資訊專欄
    熱門視頻
    相關推薦
    java concat js 遍歷json js json對象 js數組遍歷方法 python 引用 idea的maven配置 maven安裝配置 java filereader java stream java random java lambda java hashmap java foreach java final java json java 泛型 python range函數 linux ftp js 字符串轉數字 電腦忘記開機密碼怎么辦 python strip函數 python configparser模塊 oracle coalesce rstudio使用教程 mysql去重復 保留一條 js set方法 python中get函數用法 java get和set方法 object轉bigdecimal object 轉list python 交集 js讀取文件 linux 格式化u盤 deque java java process armoury crate打不開 python skimage vue使用jquery js set去重 python的range函數用法
    Top 国产高清在线精品一区小说| 97久久超碰国产精品旧版| 国内精品一区二区三区最新| 精品国产网红福利在线观看| 国产精品一区二区综合| 91精品国产乱码在线观看| 国产中文在线亚洲精品官网| 在线欧美精品一区二区三区| 亚洲AV永久精品爱情岛论坛| 精品乱码一区内射人妻无码| 2021在线观看视频精品免费| 国内精品久久久久久99蜜桃| 国产乱人伦app精品久久| 麻豆精品在线播放| 四虎成人精品无码| 国产原创精品 正在播放| 国产精品女在线观看| 精品免费久久久久久久| 久久久国产精品福利免费| 国产精品视频1区| 日韩人妻无码精品一专区| 国产日韩久久久精品影院首页| 国产精品无码一区二区三区不卡 | 亚洲精品亚洲人成在线| 青青青青久久精品国产h| 国产精品美女网站在线观看| 日韩精品视频免费在线观看| 亚洲午夜国产精品| 久久一区二区精品综合| 亚洲精品夜夜夜妓女网| 国产精品视频九九九| 国产精品亚洲综合天堂夜夜| 亚洲AV无码成人精品区日韩| 精品久久久久久成人AV| 日本aⅴ精品中文字幕| 精品亚洲综合久久中文字幕| 国产A∨国片精品一区二区| 国产大片91精品免费看3| 国产精品盗摄一区二区在线| 亚洲精品GV天堂无码男同| 无码人妻精品一区二区三区99性|