diff --git a/src/ansys/tools/installer/main.py b/src/ansys/tools/installer/main.py index 698d965..b36d431 100644 --- a/src/ansys/tools/installer/main.py +++ b/src/ansys/tools/installer/main.py @@ -739,13 +739,29 @@ def _run_install_python(self, filename): self.setEnabled(True) +def __restore_windows_dll_load(): + """PyInstaller on Windows may break DLL loading. This function restores it.""" + 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 @@ -776,8 +792,6 @@ def open_gui(): sys.stdout = open("CONOUT$", "w") sys.stderr = open("CONOUT$", "w") - enable_logging() - app = QtWidgets.QApplication(sys.argv) window = AnsysPythonInstaller()