VC str.Format 錯誤 Buffer too small

CString output ;
	int size = m_NicInfo.size();
	output.Format(_T("共%d塊網卡\r\n"),size);
	//VE_NicINFO_IT  it = this->m_NicInfo.begin();
	//for(; it != m_NicInfo.end(); ++it){
	//	CString tmp;
	//	tmp.Format(_T("網卡GUID:%s\r\n"),it->NicGUID);
	//	output += tmp;
	//	tmp.Format(_T("網卡描述:%s\r\n"),it->NicDesc);
	//	output += tmp;
	//	tmp.Format(_T("網卡名稱:%s\r\n"),it->NicName);
	//	output += tmp;
	//	tmp.Format(_T("網卡註冊表中INDEX:%s\r\n"),it->NicClassIndex);
	//	output += tmp;
	//}

	for(int pos = 0; pos < size ; pos++){
		CString tmp;
		tmp.Format(_T("網卡GUID:%s\r\n"),m_NicInfo.at(pos).NicGUID);
		output += tmp;
		tmp.Format(_T("網卡描述:%s\r\n"),m_NicInfo.at(pos).NicDesc);
		output += tmp;
		tmp.Format(_T("網卡名稱:%s\r\n"),m_NicInfo.at(pos).NicName);
		output += tmp;
		tmp.Format(_T("網卡註冊表中INDEX:%s\r\n"),m_NicInfo.at(pos).NicClassIndex);
		output += tmp;
	}
	writeLog(output);

str.Format 錯誤 Buffer too small this

The call will fail if the string object itself is offered as a parameter to Format. For example, the following code will cause unpredictable results: code

CAtlString str = _T("Some Data");
str.Format(_T("%s%d"), str, 123);   
// Attention: str is also used in the parameter list.
相關文章
相關標籤/搜索