If a lot of settings are ignored when set in a DLL, why bother even letting you set them on a DLL?

Raymond Chen


There are many settings that are ignored when set in a DLL. /LARGE­ADDRESS­AWARE. Size­Of­Stack­Reserve and Size­Of­Stack­Commit. There are plenty of others. Commenter 640k asks why these settings even exist for DLLs if they has no effect.
Because they are settings for PE modules in general.
If there were separate file formats for EXEs and DLLs, then there would have to be two different module loaders, one for EXEs and one for DLLs. This creates extra work for no particular benefit aside from satisfying some anal-retentive compulsion that nothing be wasted. As far as I can tell, all operating systems use a common file format for both executables and libraries.

If it really bothers you, you can consider this flags as Reserved for future use when applied to DLLs.

Raymond Chen
Raymond Chen

Follow Raymond