我找到了一个执行 directx com 导入的代码。但我不明白,它在我的代码中也不起作用。
就是这个代码:
internal unsafe Result GetCapabilities(out BufferCapabilities dSBufferCapsRef)
{
BufferCapabilities.__Native native = BufferCapabilities.__NewNative();
Result result = (Result) **(((IntPtr*) base._nativePointer))[(int) (((IntPtr) 3) * sizeof(void*))](base._nativePointer, (IntPtr) &native);
dSBufferCapsRef = new BufferCapabilities();
dSBufferCapsRef.__MarshalFrom(ref native);
result.CheckError();
return result;
}
奇怪的 Line 是方法中的 Line 2。Result 结果 = .... _nativePointer 声明如下:
protected unsafe void* _nativePointer;
所以我的回答是如何调用指针所指的cominterface的成员。我怎么称呼它:(base._nativePointer, (IntPtr) &native)。它是指针 _nativePointer 指向的接口的成员。
我知道我有点困惑,但我希望你能理解我的问题。