Skocz do zawartości

Biblioteka msvcrt.dll - to już coś poważnego.


BigStone

Rekomendowane odpowiedzi

nie znaleziono punktu wejścia procedury _except_handler4_common w bibliotece msvcrt.dll

 

Dzieje się to z uruchomieniem "pewnego" programu, do którego instalacji potrzebny jest .NET Framework 4.

 

Zainstalowałem wszelkie aktualizacje jakie były na microsoft update, .NET Frameworki, zaaktualizowałem sterowniki od grafiki i DirectX 9.0c. Mam SP3 < żeby nikt nie nie pytal.

 

Program zainstalowałem i przy uruchamianiu wywala ten błąd. Próbowałem już wszystkich sposobów jakie istnieją, przepatrzyłem całe google na temat błędu od góry do dołu każdy temat, i nic mi nie pomogło. Bo każdy pisze zainstaluj to albo tamto albo zaaktualizuj albo zainstaluj sp3 a tak sie sklada ze ja juz wszystko mam.

 

BLAGAM O POMOC! Próbowałem aktualizować bibliotekę i przywracac przez sfc /scannow ale nic z tego nie pomogło. Błagam o pomoc.

Odnośnik do komentarza
Pomoc jest darmowa, ale proszę rozważ przekazanie dotacji na utrzymanie serwisu: klik.

Dalej to samo, lecz nie robiłem tego co w @up piszą, tylko ściągnąłem wersję oryginalną z zerem na końcu i podmieniłem. Nadal to samo. Spróbuje jeszcze zrobić to co @up. Jak to nie pomoże to już nie wiem.

 

Każdy program działa, który wymaga tego pliku, tylko ten jeden nie działa. Próbowałem już skopiować plik .dll do Katalogu z programem i nadal to samo. POMOCY! Zobię to co pisze @ILP, a potem skanuję całego kompa.

 

Odnośnik do komentarza

Wygląda na to, że Twój tajemniczy program ładuje nieodpowiednią wersję biblioteki msvcrt.dll. Niestety, w przypadku bibliotek standardowych to standardowy problem :(

Zacznijmy od użycia Dependency Walker do sprawdzenia jakiej biblioteki oczekuje "pewien" program. W tym celu pobierz i rozpakuj odpowiednią dla Twojego systemu wersję DW i uruchom depends.exe. File -> Open, wybierz plik .exe "pewnego" programu i po załadowaniu zapisz wynik (File -> Save As -> Text (*.txt)) i plik wrzuć w odpowiedzi.

 

Możesz również spróbować pobrać i zainstalować zestaw bibliotek uruchomieniowych dla VS2k10 (skoro piszesz o .NET 4.0, to jest to wielce prawdopodobne): [KLIK] i jeśli to pomoże, to nie musisz wykonywać kroku z Dependency Walkerem.

 

m.g.

Odnośnik do komentarza

Cieszę się z takiego obrotu sprawy. Prawdę powiedziawszy ściągnąłem tę aplikację, wypakowałem zawartość .msi i dopiero wtedy stało się jasne, co jest w niej nie tak (chociaż już w zrzucie DW było widać [ E ] (niezgodności importów/exportów) dla wsock32.dll.

 

Wygląda na to, że autor aplikacji nie bardzo wie na czym polega linkowanie i źle przygotował pakiet instalacyjny. Zupełnie niepotrzebnie umieścił w nim biblioteki z własnego systemu (Windows 7 x86), które po prostu nie mają prawa sensownie działać w Windows XP.

RME.EXE owszem korzysta z _except_handler4_common, jednak zlinkowana jest z biblioteką msvcrt100.dll, w której ten eksport jest, więc tu problemu nie ma. W systemowej bibliotece msvcrt dostarczanej z Windows XP takiego eksportu nie ma (nie musi - po to jest msvcrt100.dll).

Problem pojawia się w momencie, gdy RME.EXE ładuje zlinkowaną bibliotekę WSOCK32.DLL. Autor umieścił w tym samym katalogu własną bibliotekę WSOCK32.DLL, która została niepotrzebnie załadowana zamiast biblioteki systemowej.

Biblioteka WSOCK32.DLL (dostarczona) zawiera bowiem w tablicy importów odniesienie do funkcji _except_handler4_common z biblioteki msvcrt.dll (w wersji z Windows 7 taki eksport już jest), więc podczas ładowania jej pojawia się wspomniany komunikat.

 

W katalogu aplikacji poza wspomnianą WSOCK32.DLL jest jeszcze RPCRT4.DLL, również z Windows 7 x86 (tym razem - dla odmiany - w wersji SP1 :)). Obie można spokojnie usunąć (ba, nawet należy! :))

 

m.g.

Odnośnik do komentarza
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...