110,571
社区成员
发帖
与我相关
我的任务
分享
typedef struct _MSG_BODY_USER
{
char szStuID[DATABASE_USER_SECTION_LEN];
}MSG_BODY_USER, *PMSG_BODY_USER;
MSG_BODY_USER msg;
long lErrorCode;
memset((char*)&msg, 0, sizeof(msg));
char szStuID[DATABASE_USER_SECTION_LEN];
char str[] = "28363131";
memcpy(msg.szStuID, str, strlen(str));
lErrorCode = m_CvsCtrl.OperateUser(CVS_IP, CVS_OPT_ADD, (long*)&msg, sizeof(msg));
TRACE("msg resp is: 0x%x\n", lErrorCode);
public struct _MSG_BODY_USER
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
public string szStuID;
}
_MSG_BODY_USER user = new _MSG_BODY_USER();
user.szStuID = userid;
int size = Marshal.SizeOf(user);
IntPtr structPtr = Marshal.AllocHGlobal(size);
Marshal.StructureToPtr(user, structPtr, false);
int j = structPtr.ToInt32();
int j = axCvsInterface1.OperateUser(ip1, id, ref p, size); //调用c++的控件函数 ,为什么会插
入乱码?
// 这个因为是调用的c++ 所以类型不可更改 第三个变量是ref int 类型 没办法才不用 intptr的 插入乱码是为什么?
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi]
public struct _MSG_BODY_USER
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
public string szStuID;
}
//先把这句改正了再说,难道楼主没有编译过?
//int j = structPtr.ToInt32();
int p = structPtr.ToInt32();