Python 板


LINE

※ 引述《sbrhsieh (偶爾想擺爛一下)》之銘言: : ※ 引述《cobrasgo (體重突破所有均線)》之銘言: : : 另外之前試不起來的主因是這行 : : CMPFUNC = CFUNCTYPE(c_int, comtypes.BSTR) : : 就是create ctype的callback function時 : : 它應該是會去檢查這個type對不對 : : 我把參數那欄改成comtypes.BSTR之後 : : 就可以work了 : : 我想簡單的說就是它對參數的格式 : : 檢查很嚴格吧 : 透過 CFUNCTYPE/WINFUNCTYPE 來建立 function wrapper type 時不會檢查 formal : parameter 的型別,而是指定的 formal parameter 型別會決定 wrapper function : 如何處理 actual arguments 與如何傳遞給 wrapped function。 : 把一個 Python function/callable wrapping 成 function wrapper type(比如 : 上述的 CMPFUNC)時,也不會檢查型別,因為 Python function 的 formal parameter : 在 Python level 沒有 compile-time 型別資訊。 請問一下這段知識是從哪裡看到的啊? 我也很想了解python稍為底層的東西 總是覺得不知從何下手 直接看source code? : : 但是還有兩個問題 : : 1) 有error : : Traceback (most recent call last): : : File "_ctypes/callbacks.c", line 320, in 'converting callback result' : : TypeError: an integer is required : : Exception in <bound method qyAPI._oiCallback of <__main__.qyAPI instance : : at 0x00EE8C88>> ignored : : Traceback (most recent call last): : : File "C:\qy\2.1.5\ctypes\qyAgent.py", line 81, in go : : self._GetUserAccount() : : ValueError: Procedure probably called with too many arguments (942000 bytes : : in excess) : : 官網上對這個error的說法是1)錯誤的參數個數,或是2)錯誤的calling convention : : 應該是第二個wrong calling convention : : 但是這個我就沒有想法了囧 : 以參數過多來看,你使用的套件(DLL)應該是以 __stdcall 方式來調用註冊的 : callback function,那麼你在定義 wrapper function type 時,應使用 : WINFUNCTYPE。 : CMPFUNC = WINFUNCTYPE(c_int, comtypes.BSTR) : 後來實際去 download 你提供的 API 文件來看,這個 DLL 實際上是一個 COM : object 的實作,或許你可以考慮在你的 Python runtime 上安裝 pywin32 套件 : 或是直接安裝有內建(整合) pywin32 的 Python implementation(如 ActiveState : 出品的 ActivePython),以操作 COM object 的方式來使用該 DLL。 我剛剛試 果然那個error不見了 但另一個error又跑出來 不過解掉了 明天再貼完整且沒error的code跟大家分享 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.25.185.67 ※ 編輯: cobrasgo 來自: 114.25.185.67 (01/28 00:20)
1F:→ cobrasgo:http://codepad.org/Yu7R6aco 沒error的code 02/08 20:24







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:WOW站內搜尋

TOP