您好,登錄后才能下訂單哦!
1. 編碼問題:
遇到了幾個字符串轉(zhuǎn)換問題,總結(jié)如下:
# str to bytes str.encode(s) # bytes to str bytes.decode(b)
判斷編碼方式可用chardet模塊的chardet.detect(content)來協(xié)助。
2. char *有地址取內(nèi)容:
strcontent = string_at(addr, -1)
3. 從動態(tài)鏈接庫中獲取函數(shù)并調(diào)用ctypes
from ctypes import * dll = CDLL("YourAPP.dll") dll.YourFunction()
4. 從dll中調(diào)用c程序,返回char*的情況處理
本來在32位下用string_at就可以解決,但是換成64位后內(nèi)存訪問出錯。所以改用restype,終于解決。
#32位可行,64位出錯: result = dll.function() result = string_at(result, -1) print(result) #后來改成用restype,32位/64位通用 dll.function.restype = c_char_p result = dll.function() print(result)
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對億速云的支持。如果你想了解更多相關內(nèi)容請查看下面相關鏈接
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。