1
一個D3D11device我如何獲得一個指向虛函數表在此:正確的指針,虛函數表
ID3D11Device *dev; //the pointer to the device interface
這就是我現在所擁有的,我不認爲這是正確的。
uintptr_t* pInterfaceVTable = *(uintptr_t**)dev;
如果是這樣,那麼我如何獲得成員函數呢?再次,這就是我現在所擁有的。
uintptr_t** g_deviceFunctionAddresses = new uintptr_t*[D3D11_DEVICE_METHOD_COUNT];
if(dev != NULL && swapchain != NULL){
for(int i=0; i<D3D11_DEVICE_METHOD_COUNT; i++){
g_deviceFunctionAddresses[i] = (uintptr_t*)pInterfaceVTable[i];
}
smplvtablefunction = pInterfaceVTable[functionoffset];
}
我一直在這上面停留了一段時間。
'DWORD * vt = * reinterpret_cast(dev);'每個索引是32位程序中的一個函數(4字節指針)。 –
Brandon
2014-12-04 03:58:24