当我想在C#中获取内存总值时,我在MSDN中找到了一个kernel32函数来调用系统中的数据.MSDN以这种方式声明函数:
[return: MarshalAs(UnmanagedType.Bool)]
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern bool GlobalMemoryStatusEx(ref MEMORYSTATUSEX lpBuffer);
Run Code Online (Sandbox Code Playgroud)
但这不能正常工作.我将"ref"改为"[In,Out]"然后它正常工作.怎么能告诉我C#中的[In,Out]参数是什么?
在:http://msdn.microsoft.com/de-de/library/system.runtime.interopservices.inattribute.aspx
Out:http://msdn.microsoft.com/de-de/library/system.runtime.interopservices.outattribute.aspx
简短:它们控制着数据编组的方式.在这种情况下,您指定它们两者,这意味着数据被编组到双方(调用者和被调用者).