Estoy utilizando OGR para leer características de un archivo shape; cuando la característica se destruye estoy recibiendo un error 0xC0000005: Violación de acceso al leer la ubicación 0xffffffffffff.
Esta sección del código parece inútil, pero es una simplificación de una sección mayor que muestra dónde se produce el error. He eliminado las líneas de código que podrían interferir con los objetos y sigo recibiendo el mismo mensaje de error.
OGRDataSource *hDS;
OGRSFDriver *Driver;
OGRFeature *pFeat;
hDS = OGRSFDriverRegistrar::Open(BasePath,FALSE,&Driver);
OGRLayer *Layer = hDS->GetLayerByName(ThisLayerName);
Layer->ResetReading();
while ((pFeat = Layer->GetNextFeature()) != NULL)
{
// I did intend to do something here
OGRFeature::DestroyFeature(pFeat); // error occurs here
}
OGRDataSource::DestroyDataSource(hDS);
Estoy utilizando la fuente OGR2OGR como referencia sobre cómo leer una fuente de datos OGR. Puedo ver en la referencia que cada característica devuelta se destruye antes de agarrar una nueva hasta la última característica y la fuente de datos se destruye a partir de entonces.
Estoy usando la versión 1.10 64bit de GDAL en Windows 7 64bit; he probado las versiones anteriores 1.9.2 y 1.8 y todas devuelven el mismo error. Estoy usando Visual C++ si eso hace alguna diferencia.