I build GDAL library just opening "makegdal10.sln". My test program is just simple console application with VS2010 without any added configuration. GDAL :f:\gdal-1.10.0\ Test program include config :f:\gdal-1.10.0\port\;f:\gdal-1.10.0\gcore;f:\gdal-1.10.0\ogr;f:\gdal-1.10.0\frmts; Test program link path :f:\gdal-1.10.0\gdal_i.lib
In my thought, my program may use same sources with GDAL. Is there any GDAL configuration for my program? Thanks. Seung Ae ----- Original Message ----- From:Frank Warmerdam [[email protected]] To:Seung Ae Lim [[email protected]] Cc:gdal dev [[email protected]] Sent:Fri , November 08, 2013 01:31 AM Subject:Re: [gdal-dev] NewDataset and SetBand error Seung, If the fields, like papoBands in the dataset seem ok before stepping into SetBand(), and corrupt once you are inside I would suspect that GDAL and your application have been built with different gdal_priv.h include files *or* with different structure alighnments flags for Visual Studio. Did you build GDAL from source using the same configuration you are building your application with? Best regards, Frank On Thu, Nov 7, 2013 at 1:03 AM, Seung Ae Lim < [email protected] > wrote: Dear, I make a console application with VS2010 linking "gdal_i.lib". The steps are : 1. Create New Dataset and Band in main.cpp class XXDataset : public GDALPamDataset { public: XXDataset() {}; ~XXDataset() {}; static GDALDataset* Open(GDALOpenInfo*); }; class XXRasterBand : public GDALPamRasterBand { public: XXRasterBand( GDALDataset*, int, GDALDataType ); ~XXRasterBand() {}; }; GDALDataset* XXDataset::Open(GDALOpenInfo* pOpenInfo) { XXDataset* poDS = new XXDataset(); poDS- >nRasterXSize = 100; poDS- >nRasterYSize = 200; poDS- >eAccess = GA_Update; poDS- >nBands = 3; int iBand = 0; for(iBand = 1; iBand < = 3; iBand++ ) { XXRasterBand* band = new XXRasterBand( poDS, iBand, GDT_Byte); poDS- >SetBand( iBand, band ); } return poDS; } XXRasterBand::XXRasterBand( GDALDataset *poDS, int nBand, GDALDataType eType) { this- >poDS = poDS; this- >nBand = nBand; this- >eDataType = eType; nRasterXSize = 100; nRasterYSize = 200; nBlockXSize = nRasterXSize; nBlockYSize = nRasterYSize; } 2. Add the code in main function void main() { GDALDataset* pDSTemp = XXDataset::Open(NULL); if (pDSTemp) GDALClose(pDSTemp); } I compile and try to debug this app. But in "poDS- >SetBand" line of "XXDataset::Open", the app is broken when the first band is ready to set. In XXDataset::Open, all value of parameters is right. But When stepping into the "SetBand" function, the values may be corrupted. "papobands" of GDALDataset is not null and it make an error. Please let me know the reason or some tips. Thanks. _______________________________________________ gdal-dev mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/gdal-dev -- ---------------------------------------+-------------------------------------- I set the clouds in motion - turn up | Frank Warmerdam, [email protected] light and sound - activate the windows | http://pobox.com/~warmerdam and watch the world go round - Rush | Geospatial Software Developer
_______________________________________________ gdal-dev mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/gdal-dev
