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



The information in this article applies to:

  • Microsoft Win32 Application Programming Interface (API), when used with:
    • the operating system: Microsoft Windows XP
    • the operating system: Microsoft Windows 2000
    • the operating system: Microsoft Windows NT 4.0

This article was previously published under Q324468

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.

Modification Type:MinorLast Reviewed:10/30/2003
Keywords:kbAPI kbbug kbDLL kbKernBase kbpending KB324468