rezo_ Opublikowano 3 Czerwca 2008 Zgłoś Opublikowano 3 Czerwca 2008 (edytowane) Witam, napisałem program w C++ rysujacy szczescian i czworoscian z kilkoma dodatkowymi funkcjami (ale to nieistotne) i opakowalem to w GUI za pomoca biblioteki QT. Pisalem i kompilowalem w Visual Studio 2008, na Windows Vista. Wszystko extra, ale problem pojawia sie gdy probuje odpalic program nie na moim systemie. U kumpli nie dziala, obok Visty mam postawiony Win XP i faktycznie nie chce sie odpalic, wyrzuca blad o blednej konfiguracji pliku i informacje ze problem moze rozwiazac ponowna instalacja-czyli na pewno chodzi o jakies brakujace dll'e. Program Dependency Walker informuje mnie ze brakuje bibliotek: QTCORE.dll, QTGUID4.dll, msvcr90d.dll, msvcp90d.dll. Wrzucilem je do folderu z plilkiem wykonywalnym lecz nadal sie nie odpala, tym razem Dependency Walker mowi ze brakuje DWMAPI.dll, w XP nie mialem w ogole tego dll'a, mialem go za to w Vist'cie, jednak doczytalem na necie ze jest do plik przeznaczony jedynie dla systemu Vista i nie powinien on sie znajdowac w XP, zreszta program nie dziala nawet po wrzuceniu tego pliku do folderu z programem, doczytalem takze ze to jakis bug spowodowany przez instalacje IE 7.0. Czy ktos spotkal sie z wyzej wymienionym problemem? Jak odpalic moj program na innym kompie, zaczyna mi brakowac cierpliwosci... Pozdrawiam Edytowane 3 Czerwca 2008 przez moreno Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
PelzaK Opublikowano 3 Czerwca 2008 Zgłoś Opublikowano 3 Czerwca 2008 próbowałeś instalować msvc++ 2008 redistributable package? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
rezo_ Opublikowano 3 Czerwca 2008 Zgłoś Opublikowano 3 Czerwca 2008 (edytowane) Próbowałem, nie pomogło. Pozdrawiam Edytowane 3 Czerwca 2008 przez moreno Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
yasin Opublikowano 3 Czerwca 2008 Zgłoś Opublikowano 3 Czerwca 2008 (edytowane) Ustaw w properties dllki "copy local" na true. Jezeli to nie pomoze to dodatkowo ustaw jeszcze "specyfic version" na true. Edytowane 3 Czerwca 2008 przez yasin Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
rezo_ Opublikowano 3 Czerwca 2008 Zgłoś Opublikowano 3 Czerwca 2008 Ustaw w properties dllki "copy local" na true. Jezeli to nie pomoze to dodatkowo ustaw jeszcze "specyfic version" na true. A gdzie dokladnie sa te opcje ? Bo nie moge wypatrzec. Pozdrawiam Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
yasin Opublikowano 3 Czerwca 2008 Zgłoś Opublikowano 3 Czerwca 2008 na pewno chodzi o jakies brakujace dll'e. Program Dependency Walker informuje mnie ze brakuje bibliotek: QTCORE.dll, QTGUID4.dll, msvcr90d.dll, msvcp90d.dll. ... A gdzie dokladnie sa te opcje ? Bo nie moge wypatrzec. Pozdrawiam Klikasz na dllke (masz je w solution explorer w references) i potem przy zaznaczonej dllce (np. qtcore.dll) klikasz na properties view i tam wybierasz copy local na true i specyfic version na true. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
SGJ Opublikowano 3 Czerwca 2008 Zgłoś Opublikowano 3 Czerwca 2008 DWMAPI.dll,Po kiego ładujesz obsługe Aero do programu? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
rezo_ Opublikowano 3 Czerwca 2008 Zgłoś Opublikowano 3 Czerwca 2008 (edytowane) Po kiego ładujesz obsługe Aero do programu? SGJ poswiec kilka sekund na wygoglowanie problemu DWMAPI.dll aby w przyszlosci nie zadawac glupich pytan, zadnego Aero nie pakowalem. Zreszta wystarczylo dokladnie przeczytac pierwszy post w ktorym napisalem ze jest to bug (spowodowany instalacja na xp IE 7.0) Klikasz na dllke (masz je w solution explorer w references) i potem przy zaznaczonej dllce (np. qtcore.dll) klikasz na properties view i tam wybierasz copy local na true i specyfic version na true. Nie mam ?? Ja tych bibliotek sam do projektu nie dodawalem, napisalem kod w QT, skompilowalem qmake'iem i on utworzyl mi projekt VC++ z uzupelnionymi sciezkami do odpowiednich bibliotek we wlasciwosciach projektu. Tak jak widzisz dll'i w solution explorer bezposrednio nie mam. Pozdrawiam Edytowane 3 Czerwca 2008 przez moreno Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
SGJ Opublikowano 4 Czerwca 2008 Zgłoś Opublikowano 4 Czerwca 2008 Zaden problem dwmapi i ie7 nie istnieje.... Ale jak się próbuje uruchomic na innym systemie program skompilowany w debug zamiast release to nic dziwnego ze nie działa... Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
rezo_ Opublikowano 4 Czerwca 2008 Zgłoś Opublikowano 4 Czerwca 2008 (edytowane) Zaden problem dwmapi i ie7 nie istnieje.... Ale jak się próbuje uruchomic na innym systemie program skompilowany w debug zamiast release to nic dziwnego ze nie działa... Istnieje, doczytaj: http://forums.msdn.microsoft.com/en-US/vcl...b-9dc378d87e5a/ http://forums.msdn.microsoft.com/en-US/clr...5-e098a4e40229/ i wiele innych watków. BTW Druga uwaga byla trafna. Po skompilowaniu w Release i wrzuceniu do folderu z plikiem wykonywalnym kilku bibliotek program ruszyl na xp. Jednak jesli odinstaluje msvc++ 2008 redistributable package to znowu wywala sie na DWMAPI.dll, a nie chce aby kazda osoba ktorej wysle program musiala doinstalowywac jakies rzeczy o ktorych nie powinna wiedzec, trzeba to jakos zintegrowac. EDIT Zrobilem paczke instalacyjna do ktorej oprocz pliku wykonywalnego i dwoch bibliotek QT dodalem Merge Module : Microsoft.vc90.crt i teraz po instalacji wszystko smiga zarowno na innym systemie xp jak i vista. Jednakze skoro robie juz paczke to czemu nie dodac zamiast tego modulu calego msvc++ 2008 redistributable? Tak tez zrobilem, i tu pojawia sie problem. Pod koniec instalacji mojego programu uruchamia sie instalator msvc++ 2008 redistributable, jednakze wywala blad gdyz instalator msvc++ 2008 redistributable wykrywa iz w tle dziala juz jakis inny instalator ( wlasnie ten z ktorego msvc++ 2008 redistributable zostal uruchomiony) i protestuje, wobec czego cala instalacja przepada. Jak to pogodzic? Edytowane 5 Czerwca 2008 przez moreno Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
PelzaK Opublikowano 5 Czerwca 2008 Zgłoś Opublikowano 5 Czerwca 2008 Po kiego ładujesz obsługe Aero do programu?to się dziwnym trafem samo często ładuje poprzez inne biblioteki. Nawet jeśli nie jest używane Jednak jesli odinstaluje msvc++ 2008 redistributable package to znowu wywala sie na DWMAPI.dll, a nie chce aby kazda osoba ktorej wysle program musiala doinstalowywac jakies rzeczy o ktorych nie powinna wiedzec, trzeba to jakos zintegrowac. EDIT Zrobilem paczke instalacyjna do ktorej oprocz pliku wykonywalnego i dwoch bibliotek QT dodalem Merge Module : Microsoft.vc90.crt i teraz po instalacji wszystko smiga zarowno na innym systemie xp jak i vista. msvc++ redisty zazwyczaj są dystrybuowane w patchach i servicepackach chyba, więc tak czy siak kiedyś user będzie je miał. z tym merdżem to troche do pupy, bo powinno się unikać dystrybuowania oddzielnych dllek skoro są to dllki systemowe (powielanie binariów) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
SGJ Opublikowano 5 Czerwca 2008 Zgłoś Opublikowano 5 Czerwca 2008 to się dziwnym trafem samo często ładuje poprzez inne biblioteki. Nawet jeśli nie jest używaneJak juz napisalem to się samo nie laduje do prawidłowo skompilowanego programu. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
rezo_ Opublikowano 6 Czerwca 2008 Zgłoś Opublikowano 6 Czerwca 2008 (edytowane) to się dziwnym trafem samo często ładuje poprzez inne biblioteki. Nawet jeśli nie jest używane msvc++ redisty zazwyczaj są dystrybuowane w patchach i servicepackach chyba, więc tak czy siak kiedyś user będzie je miał. z tym merdżem to troche do pupy, bo powinno się unikać dystrybuowania oddzielnych dllek skoro są to dllki systemowe (powielanie binariów) Mam na XP wgrane SP3 i wszystkie aktualizacje i nie mam MSVC++ Redistributable 2008(vc90), jest tylko wersja (vc80). Wiec albo musze dodac merdża, albo dodac calego redistributable do pakietu jednak wtedy wywala sie przez wyzej opisany blad. Jak juz napisalem to się samo nie laduje do prawidłowo skompilowanego programu.Kompilowanie programu nie ma tu nic do rzeczy, DWMAPI.dll nie jest w ogole zaladowany do programu. Niepoprawne referencje do DWMAPI.dll sa juz w plikach systemowych XP co powoduje instalacja IE 7.0 na tym systemie, wiecej info na google i np w linkach ktore dalem wyzej. Edytowane 6 Czerwca 2008 przez moreno Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
SGJ Opublikowano 6 Czerwca 2008 Zgłoś Opublikowano 6 Czerwca 2008 Ma do rzeczy i to duzo. Po pierwsze. Próbujesz uruchamiac na innych komputerach wersję debug, a ta wersja nie jest do tego przeznaczona. Po drugie. W wersji debug mogli sobie zlinkowac co chcieli. Ta wersja ma działac tylko pod VS na systemie w którym kompilowany jest program. Po trzecie To nie jest problem IE7 tylko tego ze kompilujesz pod Vistą, a tym samym tylko na tym systemie powinna byc uruchamiana wersja debug. Po czwarte Kompilacja pod XP/2003 nie powoduje tego problemu a tym samym potwierdza ze to nie wina IE. Po piąte. Program który ma byc udostepniany innym i uruchamiany na innym komputerze zawsze powinien byc skompilowany w release. Po szesnaste. Do instalacji uzyj czegos co nie uzywa instalatora windows to nie będzie problemu z uruchomieniem redist, a i szybciej się wszystko zainstaluje. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
rezo_ Opublikowano 6 Czerwca 2008 Zgłoś Opublikowano 6 Czerwca 2008 (edytowane) SGJ, na poczatku przez przeoczenie program byl skompilowany w Debug wiec moze nie zauwazyles ale aktualnie mowa jest o programie skompilowanym w wersji Release(traktuje o tym post #10 w tym temacie) wiec te Twoje "porady" mozna wyrzucic do kosza, przeczytaj watek zanim zdecydujesz sie odpowiedziec B-) Edytowane 6 Czerwca 2008 przez moreno Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
SGJ Opublikowano 6 Czerwca 2008 Zgłoś Opublikowano 6 Czerwca 2008 I jaki masz problem z release? Release działa prawidłowo i nie ma zadnego błedu Ie ani nic takiego, tylko wina nieudolnego "programisty" który nie opanowal podstaw dzialania IDE i kompilatora z którego korzysta. The Microsoft Visual C++ 2008 Redistributable Package (x86) installs runtime components of Visual C++ Libraries required to run applications developed with Visual C++ on a computer that does not have Visual C++ 2008 installed. Więc zyczę powodzenia w uruchamianiu programów bez odpowiednich bibliotek... Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
rezo_ Opublikowano 6 Czerwca 2008 Zgłoś Opublikowano 6 Czerwca 2008 (edytowane) I jaki masz problem z release? Release działa prawidłowo i nie ma zadnego błedu Ie ani nic takiego, tylko wina nieudolnego "programisty" który nie opanowal podstaw dzialania IDE i kompilatora z którego korzysta. The Microsoft Visual C++ 2008 Redistributable Package (x86) installs runtime components of Visual C++ Libraries required to run applications developed with Visual C++ on a computer that does not have Visual C++ 2008 installed. Więc zyczę powodzenia w uruchamianiu programów bez odpowiednich bibliotek... Bledy sa nieodlaczna czescia tej profesji i kwestia tylko jak szybko zdolasz je wylapac i poprawic, a poczatkowe przeoczenie kompilacji w trybie release nie wynika z tego że jestem nieudolnym programistą ktory nie opanowal podstaw dzialania IDE i kompilotra z ktorego korzysta jak starasz sie mi ublizyc, lecz ze zwyklego pospiechu i niedopatrzenia. Ale jestem pełen uznania dla Twego geniuszu skoro nie zdarza Ci sie nigdy czegos przeoczyc a kazdy kod ktory napiszesz kompiluje sie bez zadnej poprawki za pierwszym razem :lol2: I dlaczego uparcie nie przeczytasz watku w ktorym zabierasz glos? Kto mowi o uruchamieniu programu bez msvc redist(oprocz Ciebie)? W poscie #10 jest jasno napisane ze chce zintegrowac instalacje MSVC 2008 Redist z programem i jest tam tez opisane jaki napotykam problem. Wiec jezeli chcesz cos wniesc do tematu to racz podac jakis konkret odnosnie "Po szesnaste" z Twojego wczesniejszego postu, bo cos tam o tym napomknales :wink: Pozdrawiam Edytowane 6 Czerwca 2008 przez moreno Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
PelzaK Opublikowano 6 Czerwca 2008 Zgłoś Opublikowano 6 Czerwca 2008 Mam na XP wgrane SP3 i wszystkie aktualizacje i nie mam MSVC++ Redistributable 2008(vc90), jest tylko wersja (vc80). Wiec albo musze dodac merdża, albo dodac calego redistributable do pakietu jednak wtedy wywala sie przez wyzej opisany blad. no ale zważ, że dopiero była premiera visual studio 2008, do 2005 vc80 chyba było w poprawkach dostępnych przez windows updejt? Czy nie? Tak samo będzie podejrzewam z vc90 ino za jakiś czas :) Podstawowe operacje jakie wykonuję przez wypuszczeniem programu w świat, to kompilacja do releasa (najlepiej ustawiając wszlekie propertiesy projektu od razu robić to samo dla releasa), i daję program kilku zaufanym osobom na sprawdzenie (takim które nie mają visuala :) ). Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...