GetSystemInfo里的SYSTEM_INFO结构体在C#中如何表示?

runerback 2015-07-02 05:15:08
C++:

typedef struct _SYSTEM_INFO {
union {
DWORD dwOemId;
struct {
WORD wProcessorArchitecture;
WORD wReserved;
};
};
DWORD dwPageSize;
LPVOID lpMinimumApplicationAddress;
LPVOID lpMaximumApplicationAddress;
DWORD_PTR dwActiveProcessorMask;
DWORD dwNumberOfProcessors;
DWORD dwProcessorType;
DWORD dwAllocationGranularity;
WORD wProcessorLevel;
WORD wProcessorRevision;
} SYSTEM_INFO;


C#对应数据类型:
DWORD -> uint
DWORD_PTR -> UIntPtr
WORD -> ushort
LPVOID -> UInt32

主要是 union 不知道怎么写,看网上说的大概是:

[StructLayout(LayoutKind.Explicit)]
public struct SYSTEM_INFO
{
[FieldOffset(0)]
uint dwOemId;

[FieldOffset(0)]
public struct _
{
public uint wProcessorArchitecture;
public uint wReserved;
}

uint dwPageSize;
UInt32 lpMinimumApplicationAddress;
UInt32 lpMaximumApplicationAddress;
UIntPtr dwActiveProcessorMask;
uint dwNumberOfProcessors;
uint dwProcessorType;
uint dwAllocationGranularity;
uint wProcessorLevel;
ushort wProcessorRevision;
}

照猫画虎写完,完全错了啊

或者教我个使用 GetSystemInfo 的办法也行,主要是获取 wProcessorArchitecture 这个值来判断具体的操作系统版本
...全文
254 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
runerback 2015-07-03
  • 打赏
  • 举报
回复
没人了,结贴...
我爱吃锅魁 2015-07-02
  • 打赏
  • 举报
回复
http://blog.csdn.net/sxd125/article/details/46672123 看下有没有你要的

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧