【发布时间】:2011-03-14 13:21:05
【问题描述】:
我有问题。这是结构的 C 定义:
typedef struct _UNIMDM_CHG_DEVCFG {
DWORD dwCommand;
LPCWSTR lpszDeviceClass;
LPVARSTRING lpDeviceConfig;
DWORD dwOption;
DWORD dwValue;
} UNIMDM_CHG_DEVCFG;
我在 Windows CE 上使用 .NET Compact Framework 3.5。我尝试了很多方法来编组这个结构,例如:
[StructLayout(LayoutKind.Sequential)]
internal struct UnimodemChangeDeviceConfiguration
{
public int dwCommand;
public byte[] lpszDeviceClass;
public byte[] lpDeviceConfig;
public int dwOption;
public int dwValue;
}
问题是在此结构的实例上调用 Marshal.SizeOf 时,它会抛出 NotSupportedException。为什么?我尝试对 lpszDeviceClass 使用字符串,但又遇到了问题。指针类型似乎无法编组。
【问题讨论】:
标签: winapi struct pinvoke windows-ce marshalling