CString 赋值到结构数组的有关问题
CString 赋值到结构数组的问题。
我有这么一个类。
class Msg_Login
{
public:
int nType; //消息类型
TCHAR chUserName[20];
TCHAR chUserPSW[16];
};
我现在想把
int nType = 1;
CString strUserName = _T("admin");
CString strUserPSW = _T("123");
这些赋值到这个结构当中。
Msg_Login MsgLogin;
MsgLogin.nType = 1;
接下来应该怎么将其它两个赋值到这个结构数组中?PS:我的环境是Unicode.
------解决方案--------------------
memcpy_s
------解决方案--------------------
既然使用的字符串, 最好是使用 TCHAR
class Msg_Login
{
public:
int nType; //消息类型
TCHAR chUserName[20];
TCHAR chUserPSW[16];
};
如果使用了TCHAR , 那么就可以这样赋值了.
_tcscpy_s(MsgLogin.chUserName, 20, strUserName);
_tcscpy_s(MsgLogin.chUserPSW, 16, strUserPSW);
如果你还是使用char, 环境又是UNICODE, 那就比较麻烦了.
需要先把 CString中的字符串转换成ASCII, 调用 WideCharToMultiByte .
然后再调用strcpy复制转换好的字符串.
------解决方案--------------------
memcpy
我有这么一个类。
class Msg_Login
{
public:
int nType; //消息类型
TCHAR chUserName[20];
TCHAR chUserPSW[16];
};
我现在想把
int nType = 1;
CString strUserName = _T("admin");
CString strUserPSW = _T("123");
这些赋值到这个结构当中。
Msg_Login MsgLogin;
MsgLogin.nType = 1;
接下来应该怎么将其它两个赋值到这个结构数组中?PS:我的环境是Unicode.
------解决方案--------------------
memcpy_s
------解决方案--------------------
既然使用的字符串, 最好是使用 TCHAR
class Msg_Login
{
public:
int nType; //消息类型
TCHAR chUserName[20];
TCHAR chUserPSW[16];
};
如果使用了TCHAR , 那么就可以这样赋值了.
_tcscpy_s(MsgLogin.chUserName, 20, strUserName);
_tcscpy_s(MsgLogin.chUserPSW, 16, strUserPSW);
如果你还是使用char, 环境又是UNICODE, 那就比较麻烦了.
需要先把 CString中的字符串转换成ASCII, 调用 WideCharToMultiByte .
然后再调用strcpy复制转换好的字符串.
------解决方案--------------------
memcpy