<pre><br>><i> > ><br></i>><i> > > When building the library,  dllexport tells the compiler/linker<br></i>><i> > > to actually make the symbol visible outside the dll.  Without it, its<br></i>as<br>
><i> > > if the entire dll is one module and all the functions are static.<br></i>><i> > > You can accomplish almost the same thing as dllexport by creating a<br></i>><i> > > .def file which lists all the functions to export and passing that to
</i></pre><br><br><div><span class="gmail_quote">On 2/1/07, <b class="gmail_sendername">Nobuhiko Hata</b> <<a href="mailto:hata@bwh.harvard.edu">hata@bwh.harvard.edu</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi All<br><br>Follow-up to the note below...<br><br>I compiled IGSTK in dynamic library format, and successfully call a<br>class in it from Slicer.</blockquote><div><br>I guess you were building on linux. <br><br>On windows you need to export the symbols using dllexport to tell the linker to  make the symbol visible outside the dll. Since IGSTK doesn't define the dllexport directive, its equivalent to IGSTK having the entire dll as one module and all functions static (visible only within the dll). 
<br><br>In slicer, each module is a shared library, loaded at runtime. So my guess is slicer on windows, when it opens the dll using dlopen, won't see any symbols in there. <br><br>- karthik<br><br></div><div><br><br>
</div><br></div>