【发布时间】:2018-03-01 19:16:06
【问题描述】:
我有一个函数叫做:
bool game_init(void* window);
获取一个指向窗口句柄的指针,基本上它只是初始化opengl,并从c++进行渲染(我使用boost::python将此函数导出到python),现在我创建了一个简单的hello word窗口,来试试吧。
app = QtWidgets.QApplication(["",""])
window = QtWidgets.QMainWindow()
winid = window.winId()
ctypes.pythonapi.PyCapsule_GetPointer.restype = ctypes.c_void_p
ctypes.pythonapi.PyCapsule_GetPointer.argtypes = [ctypes.py_object, ctypes.c_char_p]
handle = ctypes.pythonapi.PyCapsule_GetPointer(winid.ascapsule() , None)
有趣的是,我所做的只是一个整数,类似于85983252,我猜它是 hello world 窗口的句柄,但是我如何将这个整数作为 void * 传递,以便我的 c++ 代码可以创建一个opengl 窗口使用那个?
目前错误给了我: python parameter bool game_init(int);与 cpp 代码不匹配。
environment:
Linux,pyqt5 boost::python gcc,python 3.4
【问题讨论】: