title: Symbol Visibility in Windows
body: <p>I do a lot of programming in linux and I use the visibility attribute to define if a symbol is visible or hidden in the Shared Object. Just to make the things clearer possible: If a symbol is visible it will be accessible externally (someone linking with the shared object), if it is hidden it is supposed to be used only internally.</p>
  
  <p>On windows it seems to work a bit different, it works with exporting (the symbol is defined here in the shared object and will be accessible by someone linking with this) and importing (here I am linking with a shared object and the symbol is exported there) symbols. But I couldn't find a way to tell the compiler to not export a symbol because it must be used only here, i.e. if someone link with it a linker error is expected.</p>
  
  <p>My question is if I can define a symbol as "hidden" (like in linux's gcc) and how.
  Also, all this visibility in windows topic is a bit fuzzy for me and I was looking for some further reading links to understand better how everything works.</p>