Jump to content
Sign in to follow this  
rezo_

Visual Studio 2008 + Qt + Uruchomienie Na Innym Kompie

Recommended Posts

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

Edited by moreno

Share this post


Link to post
Share on other sites

próbowałeś instalować msvc++ 2008 redistributable package?

Share this post


Link to post
Share on other sites

Próbowałem, nie pomogło.

 

Pozdrawiam

Edited by moreno

Share this post


Link to post
Share on other sites

Ustaw w properties dllki "copy local" na true. Jezeli to nie pomoze to dodatkowo ustaw jeszcze "specyfic version" na true.

Edited by yasin

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Dołączona grafika

 

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

Edited by moreno

Share this post


Link to post
Share on other sites

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...

Share this post


Link to post
Share on other sites

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?

Edited by moreno

Share this post


Link to post
Share on other sites

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)

Share this post


Link to post
Share on other sites

to się dziwnym trafem samo często ładuje poprzez inne biblioteki. Nawet jeśli nie jest używane

Jak juz napisalem to się samo nie laduje do prawidłowo skompilowanego programu.

Share this post


Link to post
Share on other sites

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. Edited by moreno

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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-)

Edited by moreno

Share this post


Link to post
Share on other sites

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...

Share this post


Link to post
Share on other sites

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

Edited by moreno

Share this post


Link to post
Share on other sites

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 :) ).

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

Aktualności

Artykuły



×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.