Błąd DNC: "Runtime Error 339 / 429" (Brakujący składnik ActiveX / OCX)

Dlaczego starsze oprogramowanie DNC może nie instalować się poprawnie lub ulegać awarii podczas uruchamiania.

Czy podczas uruchamiania oprogramowania DNC pojawia się jeden z poniższych błędów wykonania (runtime error)?

"Runtime Error 339: Składnik '[filename].ocx' lub jedna z jego zależności nie jest poprawnie zarejestrowana":

Występuje, gdy niezbędny plik nie istnieje lub nie został poprawnie zainstalowany w nowszych wersjach systemu Windows.

"Runtime Error 429: Składnik ActiveX nie może utworzyć obiektu":

Występuje, gdy program próbuje użyć pliku, ale system odmawia jego uruchomienia w nowszych wersjach systemu Windows.

Przyczyna i rozwiązanie dla komputerów na hali produkcyjnej

Starsze aplikacje często polegają na oddzielnych plikach pomocniczych w celu wyświetlania lub zarządzania elementami takimi jak pola tekstowe, przyciski, menu oraz porty RS232. Ze względów bezpieczeństwa nowoczesne wersje systemu Windows mogą umieszczać te niezbędne pliki w innym folderze, w którym aplikacja nie może ich znaleźć, lub w ogóle ich nie instalować. Jeśli system Windows lub aplikacja nie może znaleźć lub otworzyć jednego z tych plików pomocniczych podczas uruchamiania, program natychmiast ulega awarii z błędem 339 lub 429.

Przyczyna: Zazwyczaj dzieje się tak podczas uruchamiania starszego oprogramowania na nowoczesnych wersjach systemu Windows, po dużej aktualizacji systemu lub jeśli oryginalny instalator oprogramowania nie posiadał uprawnień administratora podczas konfiguracji w celu zarejestrowania plików.

Rozwiązanie: Rozwiązanie tych błędów w starszym oprogramowaniu często wymaga otwarcia wiersza polecenia z podwyższonymi uprawnieniami i ręcznego zarejestrowania brakujących plików za pomocą narzędzi systemowych Windows. Czasami aplikację można zainstalować i "Uruchomić jako administrator", czego jednak w dzisiejszych czasach należy unikać.

Opcje EasyDNC dla warsztatów i administratorów IT

  • EasyDNC 4.7: Starsza 32-bitowa aplikacja dla starszych wersji systemu Windows. Nadal działa na nowszych 64-bitowych wersjach systemu Windows i wielu operatorów CNC nadal preferuje tę wersję, mimo że według dzisiejszych standardów wygląda na przestarzałą i nie jest w pełni zgodna z UAC.
  • EasyDNC v5 (RemoDNC): Nowoczesna aplikacja 'AnyCPU' dostosowana do współczesnych środowisk .NET, dzięki czemu nie posiada żadnych zależności. Instaluje się i działa na systemach Windows XP SP3 lub nowszych. Na komputerze 64-bitowym działa w trybie 64-bitowym i jest w pełni świadoma mechanizmu Windows UAC.

Szczegóły techniczne: Dlaczego tworzenie składników ActiveX/COM kończy się niepowodzeniem

Dla administratorów IT i programistów błędy wykonania 339 i 429 wynikają z niepowodzeń rejestracji COM, gdy aplikacja próbuje utworzyć instancję obiektu:

  • Niezarejestrowane kontrolki COM/ActiveX: Jeśli program instalacyjny został uruchomiony bez uprawnień administratora, Kontrola konta użytkownika (UAC) systemu Windows po cichu blokuje rejestrację identyfikatora klasy (CLSID) w HKEY_CLASSES_ROOT.
  • Przekierowanie podsystemu 64-bitowego: W 64-bitowych wersjach systemu Windows 32-bitowe kontrolki ActiveX muszą znajdować się w i być rejestrowane za pośrednictwem 32-bitowego podsystemu przy użyciu C:\Windows\SysWOW64\regsvr32.exe. Jeśli zostaną zarejestrowane nieprawidłowo lub umieszczone tylko w System32, 32-bitowe pliki binarne nie będą w stanie zlokalizować ani utworzyć instancji obiektu.
  • Zerwane łańcuchy zależności: Nawet jeśli główny plik .ocx jest obecny, błąd 339 lub 429 nadal wystąpi, jeśli pomocnicza biblioteka dynamiczna (np. starsza biblioteka DLL środowiska wykonawczego Visual C++) brakuje w ścieżce systemowej.