A static library means that the code you use from the library is included in your executable file. Because of this, you do not need to send the library or require the end user to have it on their machine. However, this inflates the size of your executable file and links you to this version of the library, so if you need to update only the library, you must send a new executable file.
A shared library calls the library at the time it needs it (runtime) to execute the code, but this requires the user to have (usually a specific or minimal version) installed on his machine. You can also distribute the desired version of the library with your application if you need to.
Which is better, I do not know. I am not a Windows C ++ or MFC programmer, so I could not say. On my Linux servers, the applications I write are usually server-side and therefore use shared libraries.
It depends on how your application should be used, distributed, updated, how often the MFC library changes, if it is available at all on the user's PC, etc.
source share