BUG: LoadLibrary and LoadLibraryEx Functions Fail If Directory Name Contains a Period

Symptoms

The LoadLibrary or the LoadLibraryEx function may fail with error 126 (ERROR_MOD_NOT_FOUND) if a directory name in the path contains a period.

Cause

This error occurs under the following circumstances:
  • You call LoadLibrary or LoadLibraryEx with a qualifying path does not specify an extension. -and-

  • One or more of the directories on the path that you specify contains a period (.).
For example:
hDLL = LoadLibrary("C:\\MY.DLLs\\ABC");

Resolution

To work around this problem, specify a fully qualified file name that includes the file name extension when you call LoadLibrary or LoadLibraryEx. For example:
hDll = LoadLibrary("C:\\MY.DLLs\\ABC.DLL");

Status

Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.

More Information

According to the Microsoft Platform Software Development Kit (SDK) documentation for LoadLibrary and LoadLibraryEx, if you do not include the file name extension with the file name, the system tries to load a file with no extension. If such a file does not exist, the .dll extension is appended to the file name, and the system tries to load the file again. The error that is listed in the "Symptoms" section occurs only if the directory in the path that is passed to LoadLibrary or LoadLibraryEx contains a period (.) and if no extension is appended to the .dll file name.
Properties

Article ID: 324468 - Last Review: Nov 21, 2006 - Revision: 1

Feedback