我需要使用一个库中的方法,它在头文件中具有以下签名:
NKREMOTELIB_API int __stdcall GetEvfFrame(
const unsigned char*& buffer,
size_t& size,
NKRemoteEvfDisplayInfo& displayInfo);
我将使用以下c#代码进行调用:
我正在使用以下c#代码进行调用:
[DllImport("NKRemoteLib.dll")]
public static extern int GetEvfFrame(out IntPtr buffer, out IntPtr size, out NKRemoteEvfDisplayInfo displayInfo);
private void Test() {
IntPtr size = new IntPtr();
IntPtr buffer = new IntPtr();
NKRemoteEvfDisplayInfo displayInfo;
int res = GetEvfFrame(out buffer, out size, out displayInfo);
}
我在c#中定义了一个名为displayInfo的结构体。
我的问题是在头文件中函数签名中的&符号是否有任何意义?为什么使用size_t&而不是size_t或char*& 而不是char*?