⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mobilecfg.cpp

📁 这是一个完整的无线通讯工程
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		if(dwTmp == 2)
		{
			ReadFile(hFile, &lpinfo->dwButStringCnt, sizeof(DWORD), &dwRead, NULL);
			if(lpinfo->dwButStringCnt)
				lpinfo->g_but_string = new char*[lpinfo->dwButStringCnt];
		}
		
		//pin_string
		ReadFile(hFile, &dwTmp, sizeof(DWORD), &dwRead, NULL);
		if(dwTmp == 3)
		{
			ReadFile(hFile, &lpinfo->dwPinStringCnt, sizeof(DWORD), &dwRead, NULL);
			if(lpinfo->dwPinStringCnt)
				lpinfo->g_pin_string = new char*[lpinfo->dwPinStringCnt];
		}
		//menu_string
		ReadFile(hFile, &dwTmp, sizeof(DWORD), &dwRead, NULL);
		if(dwTmp == 4)
		{
			ReadFile(hFile, &lpinfo->dwMenuStringCnt, sizeof(DWORD), &dwRead, NULL);
			if(lpinfo->dwMenuStringCnt)
				lpinfo->g_menu_string = new char*[lpinfo->dwMenuStringCnt];
		}
		ReadFile(hFile, &dwTmp, sizeof(DWORD), &dwRead, NULL);
		ReadFile(hFile, &dwTmp, sizeof(DWORD), &dwRead, NULL);
		int i = 0;
		for(i =0; i < (int)lpinfo->dwMainStringCnt; i++)
		{
			ReadFile(hFile, &dwTmp, sizeof(DWORD), &dwRead, NULL);
			if(dwTmp)
			{
				lpinfo->g_main_string[i] = new char[dwTmp+1];
				ZeroMemory(lpinfo->g_main_string[i], dwTmp+1);
				ReadFile(hFile, lpinfo->g_main_string[i], dwTmp, &dwRead, NULL);
			}else
			{
				lpinfo->g_main_string[i] = new char[1];
				lpinfo->g_main_string[i][0] = 0;
			}


		}
		for(i =0; i < (int)lpinfo->dwButStringCnt; i++)
		{
			ReadFile(hFile, &dwTmp, sizeof(DWORD), &dwRead, NULL);
			if(dwTmp)
			{
				lpinfo->g_but_string[i] = new char[dwTmp+1];
				ZeroMemory(lpinfo->g_but_string[i], dwTmp+1);
				ReadFile(hFile, lpinfo->g_but_string[i], dwTmp, &dwRead, NULL);
			}
			else
			{
				lpinfo->g_but_string[i] = new char[1];
				lpinfo->g_but_string[i][0] = 0;
			}
			
		}
		for(i =0; i < (int)lpinfo->dwPinStringCnt; i++)
		{
			ReadFile(hFile, &dwTmp, sizeof(DWORD), &dwRead, NULL);
			if(dwTmp)
			{
				lpinfo->g_pin_string[i] = new char[dwTmp+1];
				ZeroMemory(lpinfo->g_pin_string[i], dwTmp+1);
				ReadFile(hFile, lpinfo->g_pin_string[i], dwTmp, &dwRead, NULL);
			}
			else
			{
				lpinfo->g_pin_string[i] = new char[1];
				lpinfo->g_pin_string[i][0] = 0;
			}
		}
		for(i =0; i < (int)lpinfo->dwMenuStringCnt; i++)
		{
			ReadFile(hFile, &dwTmp, sizeof(DWORD), &dwRead, NULL);
			if(dwTmp)
			{
				lpinfo->g_menu_string[i] = new char[dwTmp+1];
				ZeroMemory(lpinfo->g_menu_string[i], dwTmp+1);
				ReadFile(hFile, lpinfo->g_menu_string[i], dwTmp, &dwRead, NULL);
			}
			else
			{
				lpinfo->g_menu_string[i] = new char[1];
				lpinfo->g_menu_string[i][0] = 0;
			}
		}
		CloseHandle(hFile);
	}
}


void CMobileCfg::WriteStringRes(LPCSTR szFile,LPSTRINGRES lpinfo)
{
	//write;
	HANDLE	hFile  = CreateFile(szFile, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
	if(hFile && hFile != INVALID_HANDLE_VALUE)
	{
		DWORD	dwVer = 1;
		DWORD	dwWrite = 0;
		DWORD	dwTmp = 0;
		WriteFile(hFile, &dwVer, sizeof(DWORD), &dwWrite, NULL);
		dwTmp = 1;	//tcmobiledlg_string
		WriteFile(hFile, &dwTmp, sizeof(DWORD), &dwWrite, NULL);
		dwTmp = 88;
		WriteFile(hFile, &dwTmp, sizeof(DWORD), &dwWrite, NULL);
		
		dwTmp = 2;	//button_string
		WriteFile(hFile, &dwTmp, sizeof(DWORD), &dwWrite, NULL);
		dwTmp = 11;
		WriteFile(hFile, &dwTmp, sizeof(DWORD), &dwWrite, NULL);
		
		dwTmp = 3;	//tcmobiledlg_string
		WriteFile(hFile, &dwTmp, sizeof(DWORD), &dwWrite, NULL);
		dwTmp = 2;
		WriteFile(hFile, &dwTmp, sizeof(DWORD), &dwWrite, NULL);
		
		dwTmp = 4;	//tcmobiledlg_string
		WriteFile(hFile, &dwTmp, sizeof(DWORD), &dwWrite, NULL);
		dwTmp = 11;
		WriteFile(hFile, &dwTmp, sizeof(DWORD), &dwWrite, NULL);
		
		dwTmp = 0;	//end
		WriteFile(hFile, &dwTmp, sizeof(DWORD), &dwWrite, NULL);
		dwTmp = 0;	//end
		WriteFile(hFile, &dwTmp, sizeof(DWORD), &dwWrite, NULL);
		
		DWORD	i = 0;
		for( i = 0; i < lpinfo->dwMainStringCnt;i++)
		{
			char	*psz = lpinfo->g_main_string[i];
			dwTmp = strlen(psz);
			WriteFile(hFile, &dwTmp, sizeof(DWORD), &dwWrite, NULL);
			WriteFile(hFile, psz, dwTmp, &dwWrite, NULL);
		}
		
		for( i = 0; i < lpinfo->dwButStringCnt;i++)
		{
			char	*psz = lpinfo->g_but_string[i];
			dwTmp = strlen(psz);
			WriteFile(hFile, &dwTmp, sizeof(DWORD), &dwWrite, NULL);
			WriteFile(hFile, psz, dwTmp, &dwWrite, NULL);
		}
		
		
		for( i = 0; i < lpinfo->dwPinStringCnt;i++)
		{
			char	*psz = lpinfo->g_pin_string[i];
			dwTmp = strlen(psz);
			WriteFile(hFile, &dwTmp, sizeof(DWORD), &dwWrite, NULL);
			WriteFile(hFile, psz, dwTmp, &dwWrite, NULL);
		}
		for( i = 0; i < lpinfo->dwMenuStringCnt;i++)
		{
			char	*psz = lpinfo->g_menu_string[i];
			dwTmp = strlen(psz);
			WriteFile(hFile, &dwTmp, sizeof(DWORD), &dwWrite, NULL);
			WriteFile(hFile, psz, dwTmp, &dwWrite, NULL);
		}
		
		CloseHandle(hFile);
	}else
	{
		CString	str;
		str.Format("%d\n", GetLastError());
		AfxMessageBox(str);
	}
}

void CMobileCfg::ReleaseStringRest(LPSTRINGRES lpinfo)
{
	DWORD	i = 0;
	for( i = 0; i < lpinfo->dwMainStringCnt;i++)
	{
		char	*psz = lpinfo->g_main_string[i];
	}
	delete [] lpinfo->g_main_string;
	
	for( i = 0; i < lpinfo->dwButStringCnt;i++)
	{
		char	*psz = lpinfo->g_but_string[i];
		delete [] psz;
	}
	delete [] lpinfo->g_but_string;
	
	
	for( i = 0; i < lpinfo->dwPinStringCnt;i++)
	{
		char	*psz = lpinfo->g_pin_string[i];
		delete [] psz;
	}
	delete [] lpinfo->g_pin_string;
	for( i = 0; i < lpinfo->dwMenuStringCnt;i++)
	{
		char	*psz = lpinfo->g_menu_string[i];
		delete [] psz;
	}
	delete [] lpinfo->g_menu_string;
}

int	 CMobileCfg::WriteStringResII(LPCSTR szFile,CStringArray &StringList)
{
	//write;
	HANDLE	hFile  = CreateFile(szFile, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
	if(hFile && hFile != INVALID_HANDLE_VALUE)
	{
		DWORD	dwVer = 2;
		DWORD	dwWrite = 0;
		DWORD	dwTmp = StringList.GetSize();
		WriteFile(hFile, &dwVer, sizeof(DWORD), &dwWrite, NULL);
		
		WriteFile(hFile, &dwTmp, sizeof(DWORD), &dwWrite, NULL);
		for(int	i = 0; i < StringList.GetSize(); i++)
		{
			CString str = StringList.GetAt(i);
			dwTmp = str.GetLength();
			WriteFile(hFile, &dwTmp, sizeof(DWORD), &dwWrite, NULL);
			WriteFile(hFile, str.GetBuffer(0), dwTmp, &dwWrite, NULL);
		}
		CloseHandle(hFile);
	}
		
	return 0;
}
int	 CMobileCfg::ReadStringResII(LPCSTR szFile, CStringArray &StringList)
{
	//read;
	HANDLE	hFile  = CreateFile(szFile, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
	if(hFile && hFile != INVALID_HANDLE_VALUE)
	{
		DWORD	dwVer = 0;
		DWORD	dwRead = 0;
		DWORD	dwTmp = 0;
		
		ReadFile(hFile, &dwVer, sizeof(DWORD), &dwRead, NULL);
		
		if(dwVer == 1)
		{
			//老版本
			
			STRINGRES	info;
			ZeroMemory(&info, sizeof(STRINGRES));
			ReadStringRes(szFile, &info);
			for(DWORD i = 0; i < info.dwMainStringCnt;i++)
			{
				StringList.Add(info.g_main_string[i]);
			}
			for( i = 0; i < info.dwButStringCnt;i++)
			{
				StringList.Add(info.g_but_string[i]);
			}
			for( i = 0; i < info.dwPinStringCnt;i++)
			{
				StringList.Add(info.g_pin_string[i]);
			}
			for( i = 0; i < info.dwMenuStringCnt;i++)
			{
				StringList.Add(info.g_menu_string[i]);
			}
			ReleaseStringRest(&info);
		}else if(dwVer == 2)
		{
			ReadFile(hFile, &dwTmp, sizeof(DWORD), &dwRead, NULL);
			DWORD	dwSize = dwTmp;
				
			int i = 0;
			for(i =0; i < (int)dwSize; i++)
			{
				dwTmp = 0;
				ReadFile(hFile, &dwTmp, sizeof(DWORD), &dwRead, NULL);
				char	*sz = new char[dwTmp+1];
				ZeroMemory(sz, dwTmp+1);
				
				if(dwTmp)
				{
					ReadFile(hFile, sz, dwTmp, &dwRead, NULL);
				}
				StringList.Add(sz);
				delete [] sz;
			}
		}
		CloseHandle(hFile);
	}
	return StringList.GetSize();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -