读书人

vc的结构有关问题

发布时间: 2012-01-20 18:53:53 作者: rapoo

vc的结构问题
typedef struct _SP_DEVINFO_DATA {
DWORD cbSize;
GUID ClassGuid;
DWORD DevInst;
ULONG_PTR Reserved;
} SP_DEVINFO_DATA, *PSP_DEVINFO_DATA;
在vc中sizeof取得结构的大小是28。

转换到c#中
[StructLayout(LayoutKind.Sequential)]
public class SP_DEVINFO_DATA
{
public UInt32 cbSize;
public Guid ClassGuid;
public UInt32 DevInst;
public ulong Reserved;
};
SP_DEVINFO_DATA spData = new SP_DEVINFO_DATA();
spData.cbSize = (UInt32)System.Runtime.InteropServices.Marshal.SizeOf(spData);

大小为什么变成了32?

[解决办法]
ref:
http://www.pinvoke.net/default.aspx/setupapi/SetupDiEnumDeviceInfo.html

读书人网 >C#

热点推荐