敝人正在调试一个程序,现遇到一问题求大牛解答
我将一个wchar_t[50]的变量赋值给一个CString的变量
编译时能过,但程序运行到这个赋值语句时程序挂了
sFSURTData.strSamplingTime = SResultOfFSUNHT.wchSamplingTime
这两个变量都是属于结构体里的成员
wchar_t 到 CString 的赋值,应该直接将 wchar_t 赋值给 CString 就可以。
但必须保证 wchar_t 的变量有字符串结束符哦,否则真会出现程序挂掉的问题。
以下是代码 CNHLogAPI是我们公司内部用的一个类
case 1:
{
sFSURTData.fYD = (float)_wtof(SResultOfFSUNHT.wchValue1);
CNHLogAPI::WriteLog(L"采样时间", strMsg, SResultOfFSUNHT.wchSamplingTime1);
sFSURTData.strSamplingTime = SResultOfFSUNHT.wchSamplingTime1/*SResultOfFSUNHT.wchSamplingTime1*/;
CNHLogAPI::WriteLog(L"一组数据获取完成", strMsg, strMsg);
break;
}
WriteLog是写日志的,前面的那行日志写出来了,后面的没执行,所以肯定是赋值出错了
用CStringW,可以接受wchar_t数组
使用copy构造函数代替
sFSURTData.strSamplingTime = CString(SResultOfFSUNHT.wchSamplingTime);