CGlobalConfiguration GobalConfigure;
FileName = GobalConfigure.m_strConfigurePath + FileName;
CString mac; //用于保存物理地址
static CString DeviceN; //保存设备名
static CString Upper; //保存数据上
static CString Lower; //保存数据下
CString macTemp = m_PlatformInfo.GetItemText(row, 3);
for(int index = 0;index<18;index++)
{
CString appName;
appName.Format(_T("WeightPlatForm_%d"), index);
GetPrivateProfileString(appName,_T("MAC Address"), _T("Can't find any adrress"), (LPTSTR)(LPCTSTR)mac, MAX_PATH, FileName);
if(mac == macTemp)
{
GetPrivateProfileString(appName, _T("Device Name"), _T(""), (LPTSTR)(LPCTSTR)DeviceN, MAX_PATH, FileName);
page[index].m_strDeviceName = DeviceN;
GetPrivateProfileString(appName, _T("Data Upper"), _T(""), (LPTSTR)(LPCTSTR)Upper, MAX_PATH, FileName);
page[index].m_strDataUpper = Upper;
GetPrivateProfileString(appName, _T("Data Lower"), _T(""), (LPTSTR)(LPCTSTR)Lower, MAX_PATH, FileName);
page[index].m_strDataLower = Lower;
CString log;
log.Format(_T("Name = [%s],Up = [%s],Low = [%s]"),DeviceN,Upper,Lower);
MessageBox(log);
UpdateData(TRUE);
MessageBox(_T("装载完毕!"));
return;
}
}
代码如上,怎么的用来保存数据的DeviceN,Upper和Lower都是同一个数据,是Data Lower的数据,怎么会这样?我的ini文件存:
[WeightPlatForm_0]
MAC Address=DD817401304B1230
Device Name=kindle fire
Data Upper=10.000
Data Lower=05.000
[WeightPlatForm_1]
MAC Address=84982F01304B1230
Device Name=nook tablet
Data Upper=08.000
Data Lower=04.000
[WeightPlatForm_2]
MAC Address=EMPTY
Device Name=NAME
Data Upper=15.000
Data Lower=00.000
............等等18个设备数据
假如读MAC Address=DD817401304B1230设备的设备名称,数据上和数据下,log显示的是Name = 05.000,Up = 05.000,Low = 05.000 ,这是什么问题?
12 个解决方案
#1
试试看
TCHAR mac[MAX_PATH+1]; //用于保存物理地址
TCHAR DeviceN[MAX_PATH+1]; //保存设备名
TCHAR Upper[MAX_PATH+1]; //保存数据上
TCHAR Lower[MAX_PATH+1]; //保存数据下
CString类型的读还可以,写入的话得当心越界
TCHAR mac[MAX_PATH+1]; //用于保存物理地址
TCHAR DeviceN[MAX_PATH+1]; //保存设备名
TCHAR Upper[MAX_PATH+1]; //保存数据上
TCHAR Lower[MAX_PATH+1]; //保存数据下
CString类型的读还可以,写入的话得当心越界
#2
Debug下调试看看应该就很清楚了吧
#3
static CString DeviceN; //保存设备名
static CString Upper; //保存数据上
static CString Lower; //保存数据下
去掉那个可恶的static就可以了。
static CString Upper; //保存数据上
static CString Lower; //保存数据下
去掉那个可恶的static就可以了。
#4
debug编译无错
static 是我和面加的,在我加之前是一样情况
static 是我和面加的,在我加之前是一样情况
#5
没有环境,感觉if(mac == macTemp)是问题。
#6
是不是用了一个变量去存值了
#7
我肯定不会用同一个变量存;1楼的方法管用,谢谢啊
#8
如果1L方法管用,那可是是覆盖问题。
#10
GetPrivateProfileString(Section,Item,NULL,DeviceN.GetBuffer(MAX_PATH),MAX_PATH,FileName);
#11
在调用时GetPrivateProfileString不要用CString, 用TCHAR
#12
别用static
#1
试试看
TCHAR mac[MAX_PATH+1]; //用于保存物理地址
TCHAR DeviceN[MAX_PATH+1]; //保存设备名
TCHAR Upper[MAX_PATH+1]; //保存数据上
TCHAR Lower[MAX_PATH+1]; //保存数据下
CString类型的读还可以,写入的话得当心越界
TCHAR mac[MAX_PATH+1]; //用于保存物理地址
TCHAR DeviceN[MAX_PATH+1]; //保存设备名
TCHAR Upper[MAX_PATH+1]; //保存数据上
TCHAR Lower[MAX_PATH+1]; //保存数据下
CString类型的读还可以,写入的话得当心越界
#2
Debug下调试看看应该就很清楚了吧
#3
static CString DeviceN; //保存设备名
static CString Upper; //保存数据上
static CString Lower; //保存数据下
去掉那个可恶的static就可以了。
static CString Upper; //保存数据上
static CString Lower; //保存数据下
去掉那个可恶的static就可以了。
#4
debug编译无错
static 是我和面加的,在我加之前是一样情况
static 是我和面加的,在我加之前是一样情况
#5
没有环境,感觉if(mac == macTemp)是问题。
#6
是不是用了一个变量去存值了
#7
我肯定不会用同一个变量存;1楼的方法管用,谢谢啊
#8
如果1L方法管用,那可是是覆盖问题。
#9
#10
GetPrivateProfileString(Section,Item,NULL,DeviceN.GetBuffer(MAX_PATH),MAX_PATH,FileName);
#11
在调用时GetPrivateProfileString不要用CString, 用TCHAR
#12
别用static