Błąd "Runtime error 216" przy zamykaniu programu na Windows 8

0

Witam serdecznie!
Mam dosyć specyficzny problem. Mam aplikacja napisaną w Delphi XE2, system operacyjny Windows 7. Aplikacja to oczywiście *.exe oraz dosyć duża liczba plików *.dll.
W pewnym momencie zmieniłem komputer na maszynę z systemem Windows 8.1. Delphi zostało zainstalowane ponownie oraz wszystkie komponenty, które były używane
dotychczas. I tutaj po przekompilowaniu kilku plików *.dll pojawił się problem. W przypadku jednej z *.dll pojawił się problem. W momencie kiedy w programie użyte zostaną
funkcje z tej *.dll przy zamykaniu całej aplikacji pojawia się błąd "Runtime error 216". Błąd ten pojawia się tylko na komputerach z systemem Windows 8. Dodam może jeszcze
tylko tyle, że wszystkie *.dll były kiedyś sprawdzane dwoma narzędziami do wyszukiwania nieprawidłowości jeśli chodzi o poprawne tworzenie, zwalnianie obiektów i owe narzędzia
żadnych nieprawidłowości nie raportowały. Może ktoś już zetknął się z takim problemem. Jeśli tak to będę bardzo wdzięczny za jakieś wskazówki.
Z góry dziękuje.

0

Win8 to zło...
Prawdopodobnie twoja dll posiada zachowania, wzorce pasujące do virka SubSeven Trojan i Windows Defender czy jakieś inne ch** go blokuje.
Jeżeli możesz daj kod tej dll'ki

0

Kod źródłowy to oczywiście *.dpr ( i inne pliki projektu) oraz dwie formatki. Chcesz wszystko czy któryś konkretny?.
Z tego co sprawdzałem to wykomentowanie formatek w tym projekcie nie nic nie zmienia (błąd dalej występuje).
Można by wnioskować, że sam *.dpr (lub inny plik projektu) wprowadza coś "niepoprawnego".

0

Spakuj zipem czy czym tam i daj załącznik w poście.

0

Poszło w załączniku. Dll-ka jest częścią dużego projektu. Ciekawe jest też to, że wiele tych *.dll-ek było tworzonych poprzez CTRL+C, CTRL+V i drobne zmiany. Więc są bardzo podobne. I użycie tych innych *.dll błędów nie powoduje.

0

Unity

  modConsts,
  Tools_DLL,
  Tools_Procedury,
  tblT_pracownicy_rachunki_bankowe,
  Tools_Uzytkownicy_Uprawnienia,
  Form_Message_Default,
  Form_Slownik_Lista_Default,
  Form_AddEdit_Slownik_Default

mogą mieć jakiś działanie które robi coś podczas zwalniania pamięci (Free, Destroy wywoływane z automatu), a zostają alokowane gdy wywołujesz te funkcje.
Jeżeli chodzi o dll to jest dobrze zbudowana jak wspominałeś.
Możesz jeszcze spróbować usunąć z projektu wszystkie pliki res, dcu, local, cfg i skincfg identcache i przebudować cały projekt i uruchomić, kiedyś u mnie to pomogło po zmianie z xp na 7 choć był inny problem.

0

Z ciekawostek wokół tego tematu to jeszcze może jeszcze jedna. Wystarczy, że ten cały projekt zapisze pod inną nazwą np.: zamiast PracownicyRachunkiBankowe.dpr zmienię na
PracownicyRachunkiBankowe1.dpr i wszystko działa poprawnie.

0

W tak dużym projekcie łatwo o błąd jeżeli nie wiesz/pamiętasz jak są zbudowane dllki i dziwne poczynania potrafią rozwiązać problem XD

1 użytkowników online, w tym zalogowanych: 0, gości: 1