CFileDialog dlg(true,_T("map"),_T("*.map"));
CString strPath;
if(dlg.DoModal()==IDOK)
{
//获取文件路径
strPath=dlg.GetPathName();
if(strPath.Right(4)!=L".map")
strPath+=L".map";
int len = WideCharToMultiByte(CP_ACP, 0, strPath, -1, NULL, 0, NULL, NULL);
char* filepath = new char[len + 1];
//memset(filepath, 0, len + 1);
WideCharToMultiByte (CP_ACP, 0,strPath, -1, filepath, len, NULL,NULL);
ReadMap(filepath);
}
void ReadMap(const char* filepath)
{
//将文件中的数据读取到数组m_map中
ifstream ifs(filepath);
ifs>> m_mapSizeX >> m_mapSizeY;
m_map = (int**)calloc(m_mapSizeY,sizeof(int*));
int x,y;
for(y=0;y<m_mapSizeY;y++)
{
m_map[y] = (int*)calloc(m_mapSizeX,sizeof(int));
for(x=0;x<m_mapSizeX;x++)
{
//将数据读入地图数组
ifs>>m_map[y][x];
}
}
ifs.close();
}