title: exe and dll sharing the same static libraries
body: <p>i have my solution for my application set up the following way - ( i am using Visual Studio and this is a VC++ project )</p>
  
  <p><img src="https://i.stack.imgur.com/zII0H.png" alt="App Library dependency diagram"></p>
  
  <p>NOTE: Blue projects are compiled as static libraries. </p>
  
  <p>as you can see, the exe and dll shares some of the static libraries ( core.lib and utils.lib ) 
  and exe in-turn uses the DLL ( through "load time dynamic linking" using import library).</p>
  
  <p>my question is is it a correct dependency-setup to have ? 
  the problem i see is, when this app is up and running, there will be some duplicate code in the process address space right ? meaning, all the functions that are there in Core.lib and Utils.lib will appear twice right ? cos, the Exe and DLL will have this code separately compiled into them.</p>
  
  <p>if yes, one way of dealing with the above issue is to move the code exclusive to dll or keep in exe and share it (b/w exe and dll) through import/export.
  but i have many class objects in core and utils and i dont like the idea of exporting/importing these class objects ( by appending __declspec(dllimport/dllexport)) in the header files and besides i might end up adding this to lot of dependent class objects </p>
  
  <p>this is my understanding and i might be wrong. please suggest corrections and what is the usual approach followed to deal with such problems ?</p>
  
  <p>Regards,</p>