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