Delay-imported DLL name and the actual DLL file name have different case

ID PE188 Level WARNING Category Configuration

Cross-executable rule

Description

The executable delay-imports a dynamic library (DLL), and specified the name of the DLL in the letter case which does not correspond to the actual DLL file name case. Importing a library with different letter case will cause issues if the application is installed in a Windows folder which is set up to be case-sensitive.

A Windows administrator can change case sensitivity of a directory using the fsutil.exe file setCaseSensitiveInfo <path> <enable|disable> command. If you prefer to have your executable as compatible as possible, you should take this into account. See more details on case-sensitive Windows paths.

Mitigation

  • Make sure your executable file delay-imports DLL files (which are bundled with the executable file) in exactly the same letter case as actual DLL file names.

Arguments

This rule has the following output arguments:

  • imported_library - Name of delay-imported DLL as it appears in the executable delayed import directory
  • library_file_name - Actual DLL file name