std.socket uses long names for exceptions. Why do we need to save on letters here? LoadLibraryException would be good and LibraryException as base class too. I also think there should be separate UnloadLibraryException since unloading is definitely different operation. The 'Library' part can be truncated to 'Lib' surely. Besides of standard Exception.msg library exceptions also may have fileName field. 

Also I find 'loadError' is strange name actually, but it's not important since it's private.