错误代码:publicstructdemo{publicintuser_snr;[MarshalAs(UnmanagedType.ByValArray,SizeConst...
错误代码:
public struct demo
{
public int user_snr;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 13)]
public char[] datetime;
public char node;
};
而如果把以上结构中的数组去掉,全用基础类型做结构成员.如:
public struct demo
{
public int user_snr;
public char datetime;
public char node;
};
则不会报错
unsafe protected override void DefWndProc(ref System.Windows.Forms.Message m)
{
//union tagSrcStock DOS_StkBuf;
//RCV_REPORT_STRUCTEx NEW_StkBuf;
//PBYTE pDataBuf;
//RCV_DATA Header;
//RCV_DATA * pHeader;
//DWORD dwFileLen;
//int ok;
//pHeader = (RCV_DATA *)lParam;
//MyData data = (MyData ) m.GetLParam (tagRCV_DATA) ;
//int* pHeader = (int*)m.LParam;
.....
为什么会这样,找不到答案.
我的目的是取得非托管dll消息附带的数据.帮忙了!!
我知道这个参数lParam中是一个结构体的指针,可是却无法用C#取出其指向的结构值.而如果用C++就简单了,直接用p->...就可以了
demo * pHeader = ( demo* )m.LParam;