<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-GB link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span lang=EN-NZ>Hi,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-NZ><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-NZ>The latest windows build (and previous ones) has some issues with crashing when reading metadata on visual studio 2010 (windows 8) as illustrated by the program below. It works fine under mingw on the same setup. Interestingly if some of the sections are commented out parts of the program work (i.e. it can read one set of metadata e.g. properties or associated images, but not both/all). Reading image data works fine under visual studio.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-NZ><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-NZ>Thanks <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-NZ><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-NZ>Derek<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-NZ><o:p> </o:p></span></p><p class=MsoNormal>#include <openslide.h> // I also tried wrapping this in extern “C”{}<o:p></o:p></p><p class=MsoNormal>#include <stdio.h><o:p></o:p></p><p class=MsoNormal>#include <stdint.h><o:p></o:p></p><p class=MsoNormal>#include <iostream> <o:p></o:p></p><p class=MsoNormal>using namespace std ;<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>int main(int argc, char*argv[])<o:p></o:p></p><p class=MsoNormal>{<o:p></o:p></p><p class=MsoNormal> bool can_open = openslide_can_open (argv[1]) ;<o:p></o:p></p><p class=MsoNormal> if(!can_open){<o:p></o:p></p><p class=MsoNormal> cerr << "can't open: " << argv[1] << endl ;<o:p></o:p></p><p class=MsoNormal> }<o:p></o:p></p><p class=MsoNormal> openslide_t *osr = openslide_open (argv[1]) ;<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> // Get levels<o:p></o:p></p><p class=MsoNormal> int n_levels = openslide_get_level_count (osr) ;<o:p></o:p></p><p class=MsoNormal> cerr << "#Levels: " << n_levels << endl ;<o:p></o:p></p><p class=MsoNormal> for(int i=0 ; i<n_levels ; i++){<o:p></o:p></p><p class=MsoNormal> cerr << "Level: " << i << " downsample " << openslide_get_level_downsample (osr,i) << endl ; <o:p></o:p></p><p class=MsoNormal> <span lang=FR>}<o:p></o:p></span></p><p class=MsoNormal><span lang=FR><o:p> </o:p></span></p><p class=MsoNormal><span lang=FR> // Get Dimensions<o:p></o:p></span></p><p class=MsoNormal><span lang=FR> int64_t w,h ;<o:p></o:p></span></p><p class=MsoNormal><span lang=FR> </span>openslide_get_level0_dimensions(osr, &w,&h) ;<o:p></o:p></p><p class=MsoNormal> cerr << "Full Size: " << w << " x " << h << endl ;<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> // Get best level<o:p></o:p></p><p class=MsoNormal> for(int i=1 ; i<=128 ; i*=2){<o:p></o:p></p><p class=MsoNormal> cerr << "Best level for " << i << " is " << openslide_get_best_level_for_downsample (osr,i) << endl ;<o:p></o:p></p><p class=MsoNormal> }<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> const char * const* prop_names = openslide_get_property_names(osr) ;<o:p></o:p></p><p class=MsoNormal> int pc=0 ;<o:p></o:p></p><p class=MsoNormal> while(prop_names[pc] != NULL){<o:p></o:p></p><p class=MsoNormal> const char* pval = openslide_get_property_value(osr, prop_names[pc]) ;<o:p></o:p></p><p class=MsoNormal> cerr << prop_names[pc] << " : " << pval << endl ;<o:p></o:p></p><p class=MsoNormal> cerr << prop_names[pc] << endl ;<o:p></o:p></p><p class=MsoNormal> pc++ ;<o:p></o:p></p><p class=MsoNormal> }<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> const char* const* inames = openslide_get_associated_image_names(osr);<o:p></o:p></p><p class=MsoNormal> int pc2=0 ;<o:p></o:p></p><p class=MsoNormal> while(inames[pc2] != NULL){<o:p></o:p></p><p class=MsoNormal> cerr << inames[pc2] << endl ;<o:p></o:p></p><p class=MsoNormal> pc2++ ;<o:p></o:p></p><p class=MsoNormal> }<o:p></o:p></p><p class=MsoNormal>}<o:p></o:p></p></div></body></html>