Hi,<br><br>I am trying to cast some user data (void*) into an itk image as in the code below:<br><br>~~~~~~~~~~~~~~~<br>#include &quot;itkImage.h&quot;<br><br>typedef itk::Image&lt;unsigned char, 2&gt;  ImageType;<br><br>void myFunction(void* userData)<br>
{<br>  ImageType::Pointer myImage = reinterpret_cast&lt; ImageType::Pointer &gt;(userData);<br>}<br><br>int main(int argc, char *argv[])<br>{<br>  typedef itk::ImageFileReader&lt;ImageType&gt; ReaderType;<br><br>  ReaderType::Pointer reader = ReaderType::New();<br>
  reader-&gt;SetFileName(argv[1]);<br><br>  reader-&gt;Update();<br>  ImageType::Pointer image = reader-&gt;GetOutput();<br><br>  myFunction( image );<br><br>  return EXIT_SUCCESS;<br>}<br><br>~~~~~~~~~~~~~~~~~~<br>However i keep running into this compile error:<br>
<br>1&gt;d:\dev\src\ : error C2440: &#39;reinterpret_cast&#39; : cannot convert from &#39;void *&#39; to &#39;itk::SmartPointer&lt;TObjectType&gt;&#39;<br>1&gt;        with<br>1&gt;        [<br>1&gt;            TObjectType=itk::Image&lt;unsigned char,2&gt;<br>
1&gt;        ]<br>1&gt;        Conversion requires a constructor or user-defined-conversion operator, which can&#39;t be used by const_cast or reinterpret_cast<br><br>Any idea what I am doing wrong ?<br><br>many thanks,<br>
navneeth<br>