此函数在 C++ 中运行良好,但我在 Python 中遇到访问冲突错误
void RVRGetRecommendedRenderTargetSize(unsigned int* width, unsigned int* height) {
hmd->GetRecommendedRenderTargetSize(width, height);
}
bool RVRSetupStereoRenderTargets() {
if (!RVRIsReady()) return false;
unsigned int renderWidth, renderHeight;
RVRGetRecommendedRenderTargetSize(&renderWidth, &renderHeight);
RVRCreateFrameBuffer(renderWidth, renderHeight, leftEyeDesc);
RVRCreateFrameBuffer(renderWidth, renderHeight, rightEyeDesc);
return true;
}
from ctypes import *
import os
os.add_dll_directory(os.path.split(__file__)[0])
rvrDLL = WinDLL("rvr.dll")
def RVRFUNC(name, restype, argtypes):
func = getattr(rvrDLL, name)
func.restype = restype
func.argtypes = argtypes
globals()[name] = func
...
RVRFUNC("RVRSetupStereoRenderTargets", c_bool, ())
...
...
RVRSetupStereoRenderTargets()
...
...
RVRSetupStereoRenderTargets()
OSError: exception: access violation writing 0x0000000000000000
我正在开发一个使 steam vr 库更容易的库,它实际上在 c++ 中运行良好,但是当我在 python 中调用带有 dll 加载的函数时,我得到了这个访问冲突错误。
我意识到这个问题与 opengl 上下文共享有关并修复了它