取回時間按鍵,按第一次沒有問題,按第二次就會提示出錯。哪位大牛幫下忙,C++ BUILDER6的原始碼
void __fastcall TfrmMain::btnGetTimeClick(TObject *Sender)
{
LONG iMachineId =1;
LONG iYear=0;
LONG* pYear =&iYear;
LONG iMonth=0;
LONG* pMonth = &iMonth;
LONG iDay=0;
LONG* pDay=&iDay;
LONG iHour=0;
LONG* pHour =&iHour;
LONG iMinute=0;
LONG* pMinute =&iMinute;
LONG iSecond=0;
LONG* pSecond =&iSecond;
AnsiString sTimeMsg="";
WideString sIP = "";
wchar_t* wpIP =NULL;
for(int i=0;i<CheckListBoxDevs->Items->Count;i++)
{
if(CheckListBoxDevs->Checked[i])
{
AddMsg("你已選擇了:"+CheckListBoxDevs->Items->Strings[i]);
sIP = CheckListBoxDevs->Items->Strings[i];
wpIP = sIP;
if(CZKEM1->Connect_Net(wpIP,4370))
{
AddMsg("設備連接成功!");
CZKEM1->GetDeviceTime(iMachineId,pYear,pMonth,pDay,pHour,pMinute,pSecond);
sTimeMsg= IntToStr(iYear)+"-"+IntToStr(iMonth)+"-"+IntToStr(iDay)+" "+IntToStr(iHour)+":" +IntToStr(iMinute)+":"+IntToStr(iSecond);
AddMsg("設備時間:"+sTimeMsg);
}
else
{
AddMsg("設備連接失敗!IP為:"+CheckListBoxDevs->Items->Strings[i]);
}
CZKEM1->Disconnect();
}
}
if(NULL != wpIP)
{
delete wpIP;
}
}
uj5u.com熱心網友回復:
wpIP = sIP;這一句純粹是胡鬧。把wpIP樣關的全部去掉
if(CZKEM1->Connect_Net(wpIP,4370))
改成
if(CZKEM1->Connect_Net(sIP.c_bstr(), 4370))
即可。
另外,GetDeviceTime函式中直接把iYear/iMonth等等變數加上&直接代進去就可以了,不必畫蛇添足的再定義那么多LONG *物件。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/91580.html
標籤:基礎類
上一篇:C++
