Mam exe, który zależy od libeay32.dll. Oba skompilowane dla 32 bitów.Windows 7 64 bity niepoprawna ścieżka podczas ładowania biblioteki 32 bitów dla 32 bitów exe
Skopiowałem exe do C: \ Program files (x86) \ app \ bin a plik DLL do C: \ Program files (x86) \ app \ lib. Aby zapewnić poprawne działanie, dodałem do ścieżki C: \ Program files (x86) \ app \ lib.
W systemie Windows 7 64 bity, gdy wykonuję exe, mam błąd libeay32.dll nie znaleziono.
Korzystając z chodzaka zależności dla 32 bitów, biblioteka znajduje się w C: \ Program files (x86) \ app \ lib. Przy użyciu sysinternal process explorer aplikacja jest poprawnie uruchamiana. Używanie cmd też działa. Korzystanie z opiekuna zależności dla 64 bitów, widzę brakujące biblioteki. Kopiowanie dwóch plików toghether lub dll do syswow64 również działa idealnie.
Jeśli aplikacja została opracowana dla 32 bitów ...
Dlaczego existing oknami dla 32 bitów bibliotek? Dlaczego biblioteki nie zostały rozwiązane, jeśli katalog jest już na ścieżce?
Domyślam się, że w7 ignoruje ścieżkę, ale zgodnie z tym: http://msdn.microsoft.com/en-us/library/ms682586%28v=vs.85%29.aspx to nie powinno !.
Dlaczego nie mogę uruchomić mojego exe z zależnościami znajdującymi się na ścieżce? Czy powinienem zarejestrować bibliotekę?
Wszelkie pomysły będą mile widziane.
EDIT:
Program jej poprawnie uruchomiona/wykonywane po zakończeniu rozruchu z Menu-> programu, ale nie bezpośrednio na .exe ... wtf?
Korzystanie procmon wydaje się być próbuje otworzyć (uwaga na brak "„): "C: \ Program Files (x86) \ myapp \ Third-Party \ OpenSSL \ libeay32.dll" ale na drodze jego prawidłowe (ponownie sprawdzić: "C: \ Program Files (x86) \ myapp \ Third-Party \ OpenSSL")
ODPOWIEDŹ ?: istnieje scenariusz wiem/bug gdzie ustawienie „C: \ Program Files (x86) "na ścieżce, ołowiane okna próbują załadować" C: \ Program Files (x86) "zamiast tego ???? (zobacz użycie procmon bez KAŻDEGO filtra)
Windows 7 x64 błąd?
O ile mi wiadomo, PATH jest konsultowany tylko w celu zlokalizowania EXECUTABLE. Lib lub DLL nie może wykonywać samodzielnie - może obsługiwać tylko inny plik wykonywalny. – Arun
@Arun - Windows używa ścieżki do zlokalizowania bibliotek DLL. Zobacz http://msdn.microsoft.com/en-us/library/7d83bc18.aspx – shf301
Moja zła, odbieram. Tak. Bardzo dziękuję za poprawienie mojego błędu! – Arun