<div dir="ltr"><div><div><div>Seung,<br><br></div>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?<br>
<br></div>Best regards,<br></div>Frank<br><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Nov 7, 2013 at 1:03 AM, Seung Ae Lim <span dir="ltr"><<a href="mailto:salim@pixoneer.co.kr" target="_blank">salim@pixoneer.co.kr</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

   
   


<div link="blue" vlink="purple">
<p> Dear,</p>
<p> </p>
<p> I make a console application with VS2010 linking "gdal_i.lib".</p>
<p> The steps are :</p>
<p><strong> 1. Create New Dataset and Band in main.cpp</strong></p>
<div>class XXDataset : public GDALPamDataset</div>
<div>{</div>
<div>public:</div>
<div><span style="white-space:pre-wrap">  </span>XXDataset() {};</div>
<div><span style="white-space:pre-wrap">  </span>~XXDataset() {};</div>
<div> </div>
<div><span style="white-space:pre-wrap">  </span>static GDALDataset* Open(GDALOpenInfo*);</div>
<div>};</div>
<div> </div>
<div>class XXRasterBand : public GDALPamRasterBand</div>
<div>{</div>
<div>public:</div>
<div><span style="white-space:pre-wrap">  </span>XXRasterBand( GDALDataset*, int, GDALDataType );</div>
<div><span style="white-space:pre-wrap">  </span>~XXRasterBand() {};</div>
<div>};</div>
<div> </div>
<div>
<div> </div>
<div>GDALDataset* XXDataset::Open(GDALOpenInfo* pOpenInfo)</div>
<div>{</div>
<div><span style="white-space:pre-wrap">  </span>XXDataset* poDS = new XXDataset();</div>
<div><span style="white-space:pre-wrap">  </span>poDS- >nRasterXSize = 100;</div>
<div><span style="white-space:pre-wrap">  </span>poDS- >nRasterYSize = 200;</div>
<div><span style="white-space:pre-wrap">  </span>poDS- >eAccess = GA_Update;</div>
<div><span style="white-space:pre-wrap">  </span>poDS- >nBands = 3;</div>
<div> </div>
<div><span style="white-space:pre-wrap">  </span>int iBand = 0;</div>
<div><span style="white-space:pre-wrap">  </span>for(iBand = 1; iBand < = 3; iBand++ )</div>
<div><span style="white-space:pre-wrap">  </span>{</div>
<div><span style="white-space:pre-wrap">          </span>XXRasterBand* band = new XXRasterBand( poDS, iBand, GDT_Byte);</div>
<div><span style="white-space:pre-wrap">          </span>poDS- >SetBand( iBand, band );</div>
<div><span style="white-space:pre-wrap">  </span>}</div>
<div> </div>
<div><span style="white-space:pre-wrap">  </span>return poDS;</div>
<div>}</div>
<div> </div>
<div>XXRasterBand::XXRasterBand( GDALDataset *poDS, int nBand, GDALDataType eType)</div>
<div>{</div>
<div><span style="white-space:pre-wrap">  </span>this- >poDS = poDS;</div>
<div><span style="white-space:pre-wrap">  </span>this- >nBand = nBand;</div>
<div><span style="white-space:pre-wrap">  </span>this- >eDataType = eType;</div>
<div><span style="white-space:pre-wrap">  </span>nRasterXSize = 100;</div>
<div><span style="white-space:pre-wrap">  </span>nRasterYSize = 200;</div>
<div><span style="white-space:pre-wrap">  </span>nBlockXSize = nRasterXSize;</div>
<div><span style="white-space:pre-wrap">  </span>nBlockYSize = nRasterYSize;</div>
<div>}</div>
<div> </div>
<div><strong>2. Add the code in main function</strong></div>
<div>void main()</div>
<div>{</div>
<div> </div>
<div> </div>
<div>        GDALDataset* pDSTemp = XXDataset::Open(NULL);</div>
<div><span style="white-space:pre-wrap">  </span>if (pDSTemp) GDALClose(pDSTemp);</div>
<div>}</div>
</div>
<div> </div>
<div> </div>
<div>I compile and try to debug this app.</div>
<div>But in "poDS->SetBand" line of "XXDataset::Open", the app is broken when the first band is ready to set.</div>
<div>In XXDataset::Open, all value of parameters is right.</div>
<div>But When stepping into the "SetBand" function, the values may be corrupted.</div>
<div>"papobands" of GDALDataset is not null and it make an error.</div>
<div> </div>
<div>Please let me know the reason or some tips.</div>
<div> </div>
<div>Thanks.</div>
<div> </div>
<p> </p>
</div>


<img height="1" width="1">

<br>_______________________________________________<br>
gdal-dev mailing list<br>
<a href="mailto:gdal-dev@lists.osgeo.org">gdal-dev@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/gdal-dev" target="_blank">http://lists.osgeo.org/mailman/listinfo/gdal-dev</a><br></blockquote></div><br><br clear="all"><br>-- <br>---------------------------------------+--------------------------------------<br>
I set the clouds in motion - turn up   | Frank Warmerdam, <a href="mailto:warmerdam@pobox.com" target="_blank">warmerdam@pobox.com</a><br>light and sound - activate the windows | <a href="http://pobox.com/~warmerdam" target="_blank">http://pobox.com/~warmerdam</a><br>
and watch the world go round - Rush    | Geospatial Software Developer<br>
</div>