看板 Python 關於我們 聯絡資訊
我用c寫了一個library ex: func1(char* p, int size); func1 裡面會對 p指到的buffer做修改 我用swig 轉出一個so檔 讓python可以 import使用 在python裡面 我用 create_string_buffer() 去建立一塊記憶體 然後想傳遞給func1 ex p = create_string_buffer(100) module.func1(p,100) module.func1(byref(p),100) 都會產生 typeerror: argument 1 of type 'char *' 請問該如何修改才可以讓python 產生一塊記憶體傳遞給C去修改內容? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.171.169.239 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1498999943.A.356.html
os653: 你沒寫錯吧? 07/02 23:48
os653: 以前寫的 07/02 23:49
os653: # 把資料抓到 buffer 07/02 23:49
os653: buffer_ = create_string_buffer(buffer_size) 07/02 23:49
os653: GetDIBits(hdc, self.handle, 0, 07/02 23:49
os653: bmp.bmHeight, 07/02 23:49
os653: buffer_, 07/02 23:49
os653: byref(bi), DIB_RGB_COLORS) 07/02 23:50
os653: 抱歉忘了對齊code,總之叫Windows API的時候可以那樣傳沒錯 07/02 23:51
vgy: 還是有需要加 甚麼typemap嗎 07/03 15:08