Привести не указатель на тип указателя в фиксированном выражении

Я немного новичок в небезопасной стороне C#, так что прости меня, если я упустил что-то очевидное здесь.

Я просматриваю некоторый код с использованием.NET Reflector, чтобы понять некоторую реализацию реализации Oculus Rift в C#, но я получаю кучу ошибок, таких как эта:

Ошибка CS0030 Невозможно преобразовать тип "OVR.ViewScaleDesc" в "OVR.ViewScaleDesc*"

Ошибка CS0030 Невозможно преобразовать тип "OVR.LayerHeader" в "OVR.LayerHeader*"

в следующем методе

public unsafe Result SubmitFrame(
        uint frameIndex, ref ViewScaleDesc viewScaleDesc, ref LayerHeader layer)
{
    fixed (ViewScaleDesc* descRef = ((ViewScaleDesc*)viewScaleDesc))
    {
        fixed (LayerHeader* headerRef = ((LayerHeader*)layer))
        {
            IntPtr layerListPtr = new IntPtr((void*)headerRef);
            return (Environment.Is64BitProcess ?
                    ovrHmd_SubmitFrame64(
                        base.NativePointer, frameIndex,
                        new IntPtr((void*)descRef), ref layerListPtr, 1) :
                        ovrHmd_SubmitFrame32(base.NativePointer, frameIndex, 
                        new IntPtr((void*)descRef),
                        ref layerListPtr, 1));// get_NativePointer()
        }
    }
}

Рефлектор дает неправильный код или я что-то не так делаю?

1 ответ

Решение

Просто бросьте актерский состав. &viewScaleDesc буду работать.

Другие вопросы по тегам