bool SHMSink::start() { if (fd_ != -1) { ERROR("fd must be -1"); return false; } const int flags = O_RDWR | O_CREAT | O_TRUNC | O_EXCL; const int perms = S_IRUSR | S_IWUSR; if (not shm_name_.empty()) { fd_ = shm_open(shm_name_.c_str(), flags, perms); if (fd_ < 0) { ERROR("could not open shm area \"%s\"", shm_name_.c_str()); strErr(); return false; } } else { for (int i = 0; fd_ < 0; ++i) { std::ostringstream name; name << PACKAGE_NAME << "_shm_" << getpid() << "_" << i; shm_name_ = name.str(); fd_ = shm_open(shm_name_.c_str(), flags, perms); if (fd_ < 0 and errno != EEXIST) { strErr(); return false; } } } DEBUG("Using name %s", shm_name_.c_str()); opened_name_ = shm_name_; shm_area_len_ = sizeof(SHMHeader); if (ftruncate(fd_, shm_area_len_)) { ERROR("Could not make shm area large enough for header"); strErr(); return false; } shm_area_ = static_cast<SHMHeader*>(mmap(NULL, shm_area_len_, PROT_READ | PROT_WRITE, MAP_SHARED, fd_, 0)); if (shm_area_ == MAP_FAILED) { ERROR("Could not map shm area, mmap failed"); return false; } memset(shm_area_, 0, shm_area_len_); if (sem_init(&shm_area_->notification, 1, 0) != 0) { ERROR("sem_init: notification initialization failed"); return false; } if (sem_init(&shm_area_->mutex, 1, 1) != 0) { ERROR("sem_init: mutex initialization failed"); return false; } return true; }
void CNetManager::setDefServerIP(const string ip, const string port) { string strErr(""); m_defServerIP.assign(ip); m_defServerPort.assign(port); CNetDBWork::saveAPPServerIP(m_defServerIP, m_defServerPort, strErr); }
CNetTransfers* CNetManager::GetTransHandle() { CNetTransfers *pNetTrans = NULL; string strErr(""); buildTransInstance(&pNetTrans, &m_transMode); if (m_pDefSendBuff!=NULL && m_defSendBuffLen!=0) pNetTrans->SetSendBuff(m_pDefSendBuff, m_defSendBuffLen); else pNetTrans->SetSendBuff(g_netSendBuf, sizeof(g_netSendBuf)); #if (SINGLE_TRANSBUFF_MODE == 0) if (m_pDefRevBuff != NULL && m_defRevBuffLen!=0) pNetTrans->SetRevBuff(m_pDefRevBuff, m_defRevBuffLen); else pNetTrans->SetRevBuff(g_netRevBuf, sizeof(g_netRevBuf)); #else if (m_pDefSendBuff!=NULL && m_defSendBuffLen!=0) pNetTrans->SetRevBuff(m_pDefSendBuff, m_defSendBuffLen); else pNetTrans->SetRevBuff(g_netSendBuf, sizeof(g_netSendBuf)); #endif pNetTrans->SetServerIP(m_defServerIP, m_defServerPort); pNetTrans->SetServerFile(m_defServerFile); return pNetTrans; }
void CSysMainMenu::OnButton1(int iEvent, unsigned char * pEventData, int iDataLen) { if (g_globalArg->m_operator->m_role!=DEMO_ROLE) { //判断系统参数,是否进入下一级界面 if ((g_globalArg->m_initFlag == 0)&&(g_globalArg->m_operator->m_role!=DEMO_ROLE)) { DBG_PRINT(("机器未初始化")); CaMsgBox::ShowMsg("机器未初始化"); return ; } g_globalArg->m_curInvVol->ResetVol(); string strErr(""); UINT32 nCurDate= TDateTime::CurrentDate().FormatInt(YYYYMMDD); UINT8 ret=CheckCurDate(nCurDate,strErr); if (ret !=SUCCESS) { CaMsgBox::ShowMsg(strErr); return ; } } DBG_PRINT(("---****m_remain = %u", g_globalArg->m_curInvVol->m_remain)); ChangeWin(PRODUCT_SALE_MAIN_MENU); }
void CNetAutoDialSetWin::ChangePara() { int ret=0, flag=0; INT8 tmpChar[64]; string strErr(""); CaProgressBar proBar("参数修改中..."); CNetConnection *pnet=NULL; INT32 autoDialType = atoi((char*)(m_pInput1->m_contentBuf)); proBar.Show(); if( CheckInputValid(strErr) != SUCCESS ) { CaMsgBox::ShowMsg(strErr); return; } ret = CNetDBWork::saveAutoDialType(autoDialType, strErr); if (ret != SQLITE_OK) { DBG_PRINT(("ret = %d", ret)) CaMsgBox::ShowMsg(strErr); return; } CaMsgBox::ShowMsg("设置成功"); ChangeWin(NET_MANAGE_MENU); return; }
void CInvSegMenu::OnButton3(int iEvent, unsigned char * pEventData, int iDataLen) { string strErr(""); UINT8 ret=SUCCESS; if (0 != g_globalArg->m_corpInfo->m_Kpjhm) { CaMsgBox::ShowMsg("非主机,不能收回发票"); return ; } UINT8 uJZlx=2;//金税盘介质 ret= INV_MediumType(uJZlx); if (ret != SUCCESS) { return ; } CaMsgBox::ShowMsg("请保持主分税控设备同时连接款机"); CaProgressBar proBar(""); proBar.SetText("发票收回中..."); proBar.Show(); ret = INV_HostGetInvVol(uJZlx, strErr); if (ret != SUCCESS) { CaMsgBox::ShowMsg(strErr); return ; } CaMsgBox::ShowMsg("发票收回成功"); return ; }
void evgSoftSeq::load() { if(isLoaded()) return; /* * Assign the first avialable(unallocated) hardware sequenceRam to this soft * sequence if none is currently assingned. */ for(unsigned int i = 0; i < m_seqRamMgr->numOfRams(); i++) { evgSeqRam* seqRamIter = m_seqRamMgr->getSeqRam(i); if( seqRamIter->alloc(this) ) break; } if(isLoaded()) { // always need sync after loading m_isSynced = false; if(mrmEVGSeqDebug) fprintf(stderr, "SS%u: Load\n",m_id); sync(); scanIoRequest(ioscanpvt); } else { char err[80]; sprintf(err, "No SeqRam to load SoftSeq %d", getId()); std::string strErr(err); throw std::runtime_error(strErr); } }
//------------------------------------------------------------------------------------ //票源读入 //------------------------------------------------------------------------------------ void CInvManageMenu::OnButton3(int iEvent, unsigned char * pEventData, int iDataLen) { if (g_globalArg->m_initFlag == 0) { CaMsgBox::ShowMsg( "机器未初始化"); return ; } string strErr(""); UINT8 ret=SUCCESS; UINT8 uJZlx=2; ret= INV_MediumType(uJZlx); if (ret != SUCCESS) { return ; } ret= INV_ReadInvVol(uJZlx,strErr); if (ret != SUCCESS) { CaMsgBox::ShowMsg(strErr); return ; } CaMsgBox::ShowMsg( "票源读入成功!"); return ; }
void evgEvtClk::setFracSynFreq(epicsFloat64 freq) { epicsUInt32 controlWord, oldControlWord; epicsFloat64 error; controlWord = FracSynthControlWord (freq, MRF_FRAC_SYNTH_REF, 0, &error); if ((!controlWord) || (error > 100.0)) { char err[80]; sprintf(err, "Cannot set event clock speed to %f MHz.\n", freq); std::string strErr(err); throw std::runtime_error(strErr); } oldControlWord=READ32(m_pReg, FracSynthWord); /* Changing the control word disturbes the phase of the synthesiser which will cause a glitch. Don't change the control word unless needed.*/ if(controlWord != oldControlWord){ WRITE32(m_pReg, FracSynthWord, controlWord); epicsUInt32 uSecDivider = (epicsUInt16)freq; WRITE32(m_pReg, uSecDiv, uSecDivider); } m_fracSynFreq = FracSynthAnalyze(READ32(m_pReg, FracSynthWord), 24.0, 0); }
OracleConnection::ObjectType OracleConnection::DescribeObjectByName(const String &command, DscHandleType &aDschp, OCIParam *&parmh) { StartTrace(OracleConnection.DescribeObjectByName); text const *objptr = reinterpret_cast<const text *> ( (const char *) command ); String strErr( "DescribeObjectByName: " ); sword attrStat = OCIDescribeAny( SvcHandle(), ErrorHandle(), (dvoid *) objptr, (ub4) strlen( (char *) objptr ), OCI_OTYPE_NAME, 0, OCI_PTYPE_UNK, aDschp.getHandle() ); Trace("status after DESCRIBEANY::OCI_PTYPE_UNK: " << (long)attrStat) if ( checkError( attrStat, strErr ) ) { strErr << "{" << command << " is neither a stored procedure nor a function}"; throw OracleException( *this, strErr ); } Trace("get the parameter handle") attrStat = OCIAttrGet( aDschp.getHandle(), OCI_HTYPE_DESCRIBE, (dvoid *) &parmh, 0, OCI_ATTR_PARAM, ErrorHandle() ); Trace("status after OCI_HTYPE_DESCRIBE::OCI_ATTR_PARAM: " << (long)attrStat); if ( checkError( attrStat ) ) { throw OracleException( *this, attrStat ); } ObjectType aStmtType( TYPE_UNK ); ub1 ubFuncType( 0 ); attrStat = OCIAttrGet( parmh, OCI_DTYPE_PARAM, (dvoid *) &ubFuncType, 0, OCI_ATTR_PTYPE, ErrorHandle() ); Trace("status after OCI_DTYPE_PARAM::OCI_ATTR_PTYPE: " << (long)attrStat << " funcType:" << (long)ubFuncType); if ( checkError( attrStat ) ) { throw OracleException( *this, attrStat ); } aStmtType = (ObjectType)ubFuncType; return aStmtType; }
//-------------------------------------------------------------------------------------------------------------------- //获取所要作废的空白发票信息,并修改屏幕显示 //-------------------------------------------------------------------------------------------------------------------- UINT8 CGInvLabelWin::BlankWasteShow() { string strErr(""); UINT8 ret =SUCCESS; UINT8 uFlag=0; if (0 == g_globalArg->m_curInvVol->m_curInvNo) //避免反复读盘 { ret = SALE_GetCurInv(g_globalArg->m_curInvVol, strErr); if (ret == FAILURE) { if (strErr.length()>OBJ_TITLE_MAX_LEN) { strErr = strErr.substr(0,OBJ_TITLE_MAX_LEN); } label[0]->SetTitleAlign(CaObject::ALIGN_LEFT); sprintf(title_array[0], strErr.c_str()); //错误 sprintf(title_array[1], "作废发票代码: 空"); sprintf(title_array[2], "作废发票号码: 空"); uFlag=1; } } if (0 == uFlag) { label[0]->SetTitleAlign(CaObject::ALIGN_CENTER); sprintf(title_array[0], "空白发票作废"); sprintf(title_array[1], "作废发票代码:%s ", g_globalArg->m_curInvVol->m_code.c_str()); sprintf(title_array[2], "作废发票号码:%08u", g_globalArg->m_curInvVol->m_curInvNo); } sprintf(title_array[3], ""); sprintf(title_array[4], ""); return SUCCESS; }
INT32 CJSKDeclareProc::DelUploadInv() { CDataInvHead dataInvHead; CInvServ invServ; INT8 sqlbuf[128]; string strErr(""); INT32 retcode = 0; retcode = CJSKInfoFunc::GetFirstOffInvInfo(&dataInvHead, strErr); if(retcode == JSK_SUCCESS) { if(dataInvHead.m_fphm != 0) { memset(sqlbuf, 0, sizeof(sqlbuf)); sprintf(sqlbuf, "where FPDM='%s' and FPHM=%u ", dataInvHead.m_fpdm.c_str(), dataInvHead.m_fphm); DBG_PRINT(("sqlbuf = %s", sqlbuf)); invServ.m_filter.append(sqlbuf); invServ.Requery(); if(invServ.LoadOneRecord() == SQLITE_OK) { memset(sqlbuf, 0, sizeof(sqlbuf)); sprintf(sqlbuf, "where NO < %u ", invServ.m_no); DBG_PRINT(("sqlbuf = %s", sqlbuf)); invServ.m_filter.append(sqlbuf); invServ.Delete(); } } else { invServ.Delete(); } } return JSK_SUCCESS; }
//------------------------------------------------------------------------------------ //函数名称:库存查询 //函数功能: //函数作者:zcy //------------------------------------------------------------------------------------ void CInvManageMenu::OnButton1(int iEvent, unsigned char * pEventData, int iDataLen) { if (g_globalArg->m_initFlag == 0) { CaMsgBox::ShowMsg("机器未初始化"); return ; } UINT32 nNum = 0;//发票卷卷数 string strErr(""); UINT8 ret=SUCCESS; CaProgressBar proBar("库存查询中....."); proBar.ReFresh(); ret =INV_GetInvVol(nNum,strErr); if (ret != SUCCESS) { CaMsgBox::ShowMsg(strErr); return ; } DBG_PRINT(("库存查询ret = %u, nNum = %u", ret, nNum)); DBG_PRINT(("库存查询成功")); if (nNum ==0) { CaMsgBox::ShowMsg("库存无票源"); return ; } m_InvWin_level1 = INV_DIST_QUERY_L1; ChangeWin(GENERAL_INV_LABEL_WIN); }
void CNet3GWlenSetWin::OnButton1(int iEvent, unsigned char * pEventData, int iDataLen) { int ret=0; string strErr(""); CaProgressBar proBar(""); string username = (char *)m_pInput1->m_contentBuf; string userpwd = (char *)m_pInput2->m_contentBuf; if (g_netManager->GetConnectionMode() != NET_3G) { CaMsgBox::ShowMsg("当前非3G模式,无法修改"); return; } if (g_netManager->checkConnect() != CONNECT_OFF) { CaMsgBox::ShowMsg("3G连接尚未断开,无法修改"); return; } proBar.SetText("3G用户信息设置中..."); proBar.Show(); if( username.length() <= 0 ) { CaMsgBox::ShowMsg("3G账号不能为空"); m_pInput1->SetFocus(); this->ReFresh(); return; } if( userpwd.length() <= 0 ) { CaMsgBox::ShowMsg("密码不能为空"); m_pInput2->SetFocus(); this->ReFresh(); return; } if( userpwd == "********" ) { userpwd = m_strUsrPwd; } CNetConnection *p = g_netManager->GetConnectionHandle(); ret = p->setUserNamePwd(username, userpwd, strErr); if (ret != NET_SUCCESS) { CaMsgBox::ShowMsg(strErr); return; } else { CaMsgBox::ShowMsg("3G信息配置成功"); ClearWin(); ChangeWin(NET_3G_WLEN_MENU); } }
void evgEvtClk::setRFFreq (epicsFloat64 RFref) { if(RFref < 50.0f || RFref > 1600.0f) { char err[80]; sprintf(err, "Cannot set RF frequency to %f MHz. Valid range is 50 - 1600.", RFref); std::string strErr(err); throw std::runtime_error(strErr); } m_RFref = RFref; }
void evgEvtClk::setRFDiv(epicsUInt32 rfDiv) { if(rfDiv < 1 || rfDiv > 32) { char err[80]; sprintf(err, "Invalid RF Divider %d. Valid range is 1 - 32", rfDiv); std::string strErr(err); throw std::runtime_error(strErr); } WRITE8(m_pReg, RfDiv, rfDiv-1); }
string SettingsParser::Str (string name) { string keyFull = "master." + name ; string val ; // if the key does not exist if(!_pConfiguration->lookupValue(keyFull, val)) { string strErr ("key <" + name + "> does not exist !!!!") ; strErr = "key <" + name + "> does not exist !!!!" ; throw std::runtime_error(strErr); } return val ; }
std::string NX::Program::LinkProgram(){ for(int i = 0, len = (int)m_vShaderSet.size(); i < len; ++i){ if(m_vShaderSet[i] == NULL){ continue; } glAttachShader(m_uProgramId, (int)(*m_vShaderSet[i])); } glLinkProgram(m_uProgramId); std::string strErr(256,0); glGetProgramInfoLog(m_uProgramId, int(strErr.size()-1), NULL, &(strErr[0])); glb_GetLog().log("Link program with link msg [%s]",(strErr[0] == 0 ? "link succeed" : strErr.c_str())); return strErr; }
void CMCIDevice::OnError(MCIERROR dwError) { if (0 == dwError) return; CString strErr(_T("Unknown")); TCHAR szErr[MCI_MAXSTRINGLEN + 1]; if (::mciGetErrorString(dwError, szErr, sizeof(MCI_MAXSTRINGLEN))) { strErr = szErr; } TRACE(_T("CMCIDevice::OnError: (%u) : %s\n"), dwError, (LPCTSTR)strErr); //::MessageBox(0, szErr, "MCI_RECORD", MB_ICONEXCLAMATION | MB_OK); }
void CNetAutoDialSetWin::DispParalInfo() { char chValue[32]; INT32 autoDialType=0; string strErr(""); CNetDBWork::loadAutoDialType(&autoDialType, strErr); memset(chValue, 0, sizeof(chValue)); sprintf(chValue, "原 值: %d", autoDialType); m_pLbl1->SetTitle(chValue, strlen(chValue)); m_pInput1->Clear(); }
void CMaintenanceMenu::OnButton10(int iEvent, unsigned char * pEventData, int iDataLen) { string strErr(""); UINT8 ret =SUCCESS; ret= LibClearDepotFunc(strErr); if (ret != SUCCESS) { CaMsgBox::ShowMsg(strErr); } return; }
void evgEvtClk::setRFDiv(epicsUInt32 rfDiv) { if(rfDiv < 1 || rfDiv > 32) { char err[80]; sprintf(err, "Invalid RF Divider %d. Valid range is 1 - 32", rfDiv); std::string strErr(err); throw std::runtime_error(strErr); } epicsUInt32 temp = READ32(m_pReg, ClockControl); temp &= ~ClockControl_Div_MASK; temp |= (rfDiv-1)<<ClockControl_Div_SHIFT; WRITE32(m_pReg, ClockControl, temp); }
int CSysMainMenu::ProcEvent(int iEvent,unsigned char *pEventData, int iDataLen) { INT8 chValue[64]; memset((void *)chValue,0x00,sizeof(chValue)); UINT32 uServNum; string strErr(""); if (ESC_KEY == iEvent || LOCKED_KEY == iEvent ) { CaMsgBox msgBox("退出当前操作员?",CaMsgBox::MB_YESNO); msgBox.ShowBox(); if (msgBox.m_iStatus == OK_PRESSED) { g_globalArg->m_threadIn = 0;//关闭次线程的待上传发票查找 ChangeWin(LOGIN_WIN); return SUCCESS; } } /* if(FIND_KEY == iEvent) { UINT8 ret= GetServNum(uServNum,strErr); if ( ret !=SUCCESS) { CaMsgBox::ShowMsg(strErr); } else { DBG_PRINT(("缓存张数 uServNum= %u", uServNum)); if (uServNum ==0) { sprintf(chValue, "无待上传发票!"); } else { sprintf(chValue, " 未上传发票张数: %u", uServNum); } CaMsgBox::ShowMsg(chValue); } return SUCCESS; } */ return CMultiBtnCommonWin::ProcEvent(iEvent,pEventData,iDataLen); }
int main(int argc, char* argv[]) { // Declare a local stack allocator OOBase::StackAllocator<1024> allocator; // Set up the command line args OOBase::CmdArgs cmd_args(allocator); cmd_args.add_option("help",'h'); cmd_args.add_option("version",'v'); // Parse command line OOBase::CmdArgs::results_t args(allocator); int err = cmd_args.parse(argc,argv,args); if (err != 0) { OOBase::LocalString strErr(allocator); if (args.find("missing",strErr)) { OOBase::stderr_write("Missing value for option "); OOBase::stderr_write(strErr.c_str()); } else if (args.find("unknown",strErr)) { OOBase::stderr_write("Unknown option "); OOBase::stderr_write(strErr.c_str()); } else { OOBase::stderr_write("Failed to parse comand line: "); OOBase::stderr_write(OOBase::system_error_text(err)); } return EXIT_FAILURE; } if (args.exists("help")) return help(); if (args.exists("version")) return version(); OOBase::stdout_write(Omega::guid_t::Create().ToString().c_str()); OOBase::stdout_write("\n"); return EXIT_SUCCESS; }
void CChangeDiskPswWin::OnButton1(int iEvent, unsigned char * pEventData, int iDataLen) { UINT8 ret = CheckInput(); if (ret !=SUCCESS) { return; } string strErr(""); ret= FSC_ChangeDiskPsw(m_OldPsw, m_NewPsw,strErr); if (ret != SUCCESS) { CaMsgBox::ShowMsg(strErr); return; } ChangeWin(FISCAL_MAIN_MENU); //返回税控档菜单 }
bool SHMSink::stop() { if (fd_ >= 0 and close(fd_) == -1) strErr(); fd_ = -1; if (not opened_name_.empty()) { shm_unlink(opened_name_.c_str()); opened_name_ = ""; } if (shm_area_ != MAP_FAILED) munmap(shm_area_, shm_area_len_); shm_area_len_ = 0; shm_area_ = static_cast<SHMHeader*>(MAP_FAILED); return true; }
void CApnAccPointSetWin::OnButton1(int iEvent, unsigned char * pEventData, int iDataLen) { int ret=0; string apnAccPoint(""), apnNumber(""); string strErr(""); CaProgressBar proBar(""); if (g_netManager->GetConnectionMode() != NET_M2M_APN) { CaMsgBox::ShowMsg("当前非M2M APN模式,无法修改"); return; } //只有apnAccPoint可设置,apnNumber是清库时固定死的 CNetDBWork::load_APN_Acc_Num(apnAccPoint, apnNumber, strErr); proBar.SetText("接入点设置中..."); proBar.ReFresh(); apnAccPoint = (char *)m_pInput1->m_contentBuf; if( apnAccPoint.length() <= 0 ) { CaMsgBox::ShowMsg("接入点不能为空"); m_pInput1->SetFocus(); this->ReFresh(); return; } M2M_APN_Connection *pAPN = (M2M_APN_Connection *)g_netManager->GetConnectionHandle(); ret = pAPN->setApn_Acc_Num(apnAccPoint, apnNumber, strErr); if (ret != NET_SUCCESS) { DBG_PRINT(("ret = %d", ret)) CaMsgBox::ShowMsg(strErr); return; } CaMsgBox::ShowMsg("APN接入点设置成功"); ClearWin(); ChangeWin(M2M_MANAGE_MENU); }
//-------------------------------------------------------------------------------------------------------------------- //已开发票作废对应的Button1函数 //-------------------------------------------------------------------------------------------------------------------- void CGInvLabelWin::InvUsedWasteBtn1() { UINT8 nRet = 0; string strErr(""); if (g_globalArg->m_operator->m_role == DEMO_ROLE) { CaMsgBox::ShowMsg("学习角色不能作废已开票"); return; } nRet = CheckCancelValid(); if (SUCCESS != nRet) { return; } CaMsgBox msgBox("是否作废?",CaMsgBox::MB_YESNO); msgBox.ShowBox(); if (msgBox.m_iStatus != OK_PRESSED) { return; } else { CaProgressBar proBar("发票作废中....."); proBar.Show(); m_pLInvHead->m_zskl = g_globalArg->m_strZskl; nRet = INVM_WstInv(m_pLInvHead, strErr); if (SUCCESS != nRet) { CaMsgBox::ShowMsg(strErr); ChangeWin(GENERAL_INV_INPUT_WIN); //返回INPUT界面 return; } else { CaMsgBox::ShowMsg("发票作废成功"); ChangeWin(GENERAL_INV_MTLBTN_WIN); //返回MultButton界面 return; } } }
void CNet3GWlenSetWin::Disp3GInfo() { INT32 ret=0; string name(""), pwd(""); string strErr(""); ret = CNetDBWork::load3gUserNamePwd(name, pwd, strErr); if (ret != SQLITE_OK) { DBG_PRINT(("ret = %d", ret)) CaMsgBox::ShowMsg(strErr); return; } m_pInput1->SetContentBuf((UINT8 *)name.c_str(), name.length()); if (pwd!="") m_pInput2->SetContentBuf((UINT8 *)"********", strlen("********")); else m_pInput2->SetContentBuf((UINT8 *)"", strlen("")); m_strUsrPwd = pwd; }
void CApnAccPointSetWin::DispApnAccPointInfo() { int ret=0; INT32 titleLen=0; INT8 title[64]; string acc(""), num(""); string strErr(""); ret = CNetDBWork::load_APN_Acc_Num(acc, num, strErr); if (ret != SQLITE_OK) { DBG_PRINT(("ret = %d", ret)) CaMsgBox::ShowMsg(strErr); return; } m_pInput1->SetContentBuf((UINT8 *)acc.c_str(), acc.length()); sprintf(title, "号 码:%s", num.c_str()); titleLen = strlen(title); m_pLabel1->SetTitle(title, titleLen); }