diff --git a/src/ansys/tools/installer/main.py b/src/ansys/tools/installer/main.py index 698d965a..79602e5d 100644 --- a/src/ansys/tools/installer/main.py +++ b/src/ansys/tools/installer/main.py @@ -739,14 +739,38 @@ def _run_install_python(self, filename): self.setEnabled(True) +def __restore_windows_dll_load(): + """Restore DLL loading on Windows. + + Notes + ----- + PyInstaller on Windows may break DLL loading. + This function restores the DLL loading on Windows. + """ + import sys + + LOG.debug(f"sys.platform: {sys.platform}") + if sys.platform == "win32": + LOG.debug("Restoring DLL loading on Windows...") + import ctypes + + ctypes.windll.kernel32.SetDllDirectoryA(None) + + def open_gui(): """Start the installer as a QT Application.""" import argparse import ctypes + # Enable logging early + enable_logging() + if os.name == "nt": import msvcrt + # Restore DLL loading on Windows... + __restore_windows_dll_load() + kernel32 = ctypes.windll.kernel32 # Parse command-line arguments @@ -776,8 +800,6 @@ def open_gui(): sys.stdout = open("CONOUT$", "w") sys.stderr = open("CONOUT$", "w") - enable_logging() - app = QtWidgets.QApplication(sys.argv) window = AnsysPythonInstaller()