shape文件头结构如下:
Position Field Value Type Byte Order
Byte 0 File Code 9994 Integer Big
Byte 4 Unused 0 Integer Big
Byte 8 Unused 0 Integer Big
Byte 12 Unused 0 Integer Big
Byte 16 Unused 0 Integer Big
Byte 20 Unused 0 Integer Big
Byte 24 File Length File Length Integer Big
Byte 28 Version 1000 Integer Little
Byte 32 Shape Type Shape Type Integer      Little
Byte 36 Bounding Box Xmin Double Little
Byte 44 Bounding Box Ymin Double Little
Byte 52  Bounding B ox Xmax Double Little
Byte 60 Bounding Box Ymax Double Little
Byte 68* Bounding Box Zmin Double Little
Byte 76* Bounding Box Zmax Double Little
Byte 84* Bounding Box Mmin Double Little
Byte 92* Bounding Box Mmax Double Little本人的代码如下:
void CShapeReaderDoc::OnFileOpen()
{
CString strOpenFileName;
static char szFilter[] = {"Shape文件(*.shp)|*.shp|索引文件(*.shx)|*.shx|dBASE文件(*.dbf)|*.dbf"};
CFileDialog dlgLoadFile(1,"载入Shape文件",NULL,NULL,szFilter); 
if(dlgLoadFile.DoModal()==IDOK)
{
CStdioFile file;
CFileException ex;
if (!file.Open(dlgLoadFile.GetPathName(), CFile::modeRead|CFile::shareDenyNone,&ex))
{
TCHAR szError[1024];
ex.GetErrorMessage(szError, 1024);
AfxMessageBox(szError);
return;
}
else
{
//想在此用afxmessagebox显示出读出来的信息,本人太愚钝,请大侠尽量详细!
}
}
}