[問題] 呼叫C 函式的問題

作者: vgy   2017-07-02 20:52:20
我用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去修改內容?
作者: os653   2017-07-02 23:48:00
你沒寫錯吧?以前寫的# 把資料抓到 bufferbuffer_ = create_string_buffer(buffer_size)GetDIBits(hdc, self.handle, 0,bmp.bmHeight,buffer_,byref(bi), DIB_RGB_COLORS)抱歉忘了對齊code,總之叫Windows API的時候可以那樣傳沒錯
作者: vgy   2017-07-03 15:08:00
還是有需要加 甚麼typemap嗎

Links booklink

Contact Us: admin [ a t ] ucptt.com