将非指针强制转换为固定表达式中的指针类型
本文关键字:指针 表达式 类型 转换 | 更新日期: 2023-09-27 18:08:22
我对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()
}
}
}
反射镜在这里给出了错误的代码还是我做错了什么?
只需放下演员阵容。&viewScaleDesc
将起作用。