多字节与宽字符串转换

来源:互联网 发布:淘宝买电话卡 编辑:程序博客网 时间:2024/05/16 16:06

//W2M

WCHAR szManufacturer[MAX_PATH+1]={0}; 

HidD_GetManufacturerString(m_DeviceHandle, szManufacturer, MAX_PATH);

char _devicename[100];


int lengthOfMbs = WideCharToMultiByte( CP_ACP, 0, szManufacturer, -1, NULL, 0, NULL, NULL);
char* mbs = new char[ lengthOfMbs ];
WideCharToMultiByte( CP_ACP, 0, szManufacturer, -1, mbs, lengthOfMbs, NULL, NULL);   
memcpy(_devicename,mbs,lengthOfMbs);
delete mbs;
mbs = NULL;
lengthOfMbs = WideCharToMultiByte( CP_ACP, 0, szProduct, -1, NULL, 0, NULL, NULL);
mbs = new char[ lengthOfMbs ];
WideCharToMultiByte( CP_ACP, 0, szProduct, -1, mbs, lengthOfMbs, NULL, NULL); 
strcat(_devicename, " ");
strncat(_devicename,mbs,lengthOfMbs);
delete mbs;

mbs = NULL;

//M2W

char* mstr = "mutil char test";
int lengthOfM = MultiByteToWideChar( CP_ACP, 0,mstr , -1, NULL, 0 );
wchar_t* wcs = new wchar_t[lengthOfM ];
MultiByteToWideChar( CP_ACP, 0,mstr , -1, wcs,lengthOfM );
delete wcs;
wcs = NULL;

原创粉丝点击