2017-09-20 3 views
0

에 전달 처리 winID :얻기 PyQt는이 C++ 나는라는 함수가

bool game_init(void* window); 

는 ++ 기본적으로 그냥 OpenGL을 초기화하고, C에서 렌더링 않는, 창 핸들에 대한 포인터를 걸립니다 (I 사용하여 파이썬이 기능을 내보내 boost :: python), 이제는 간단한 hello word 창을 만들었습니다. 내가 * 손잡이가 나는 그것이 안녕하세요 세계 윈도우의 핸들 추측 85983252 같은 단지 정수 뭔가이지만, 어떻게 무효로이 정수를 통과 않는 한 모든 것을

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) 

재미있는 것을 내 C++ 코드를 할 수 있습니다 그것을 사용하여 OpenGL 창을 만드시겠습니까? 현재 오류가 발생합니다 : python parameter bool game_init (int); cpp 코드와 일치하지 않습니다.

답변

0
winid

window.winId()로부터 리턴이 (C/C++ 환산) 부호없는 정수 포인터이다. 그리고 귀하의 handle도 마찬가지입니다.

"C"기능을 가진 공유 객체 라이브러리를 이미로드했으면 좋겠다.

다음 라이브러리 개체를 사용하여 C 함수를 호출하여 핸들을 전달하십시오.

뭔가 같은

lib.game_init(handle)