Otóż mam pewien mały problem z którym nie idzie sobie poradzić. Otóż, wcześniej używałem Visual C++ 2010, i wszystko było ok, programy kompilowane pod Vista/7 działały normalnie pod xp.. do czasu.. Od paru miesięcy idzie mi pracować w Visual Studio 2012, dzisiaj trzeba było sprawdzić czy pewien program działa na xp... No i tutaj się zaczęły schody.. typu ".... is not a valid Win32 application", oczywiście szybko znalazłem przyczynę. Visual Studio 2012 po prostu przestał obsługiwać Xpka... ale co najciekawsze, na praktycznie samym początku wydali jakąś poprawkę(nie update), i programy jakoś już działały na xp. Jednak wydali Update2, którego zainstalowałem, wszystko się udało.. No i wchodzę do properties projektu i do zakładki -> General, i tam zaznaczam "Visual Studio 2012 - Windows XP (v110_xp)" i kompiluję.. Plik exe przenoszę na xpka którego mam w virtualboxie, i odpalam.. no i oczywiście ten sam błąd... hmm... Oczywiście najprostszy program konsolowy nie działa.. więc to problem samego kompilatora. I cóż teraz zrobić? Nie chce mi się zbytnio reinstalować Visuala całego.. ani zmieniać w jakikolwiek sposób środowisko. Jak czytałem komentarze do tego update to ludziom już działały programy na xp, jedynie ja jestem wyjątkiem.. Jakiekolwiek pomysły?
Naucz się robić akapity - linijkę przerwy, albo chociaż zacząć pisać od nowej linii, bo ciężko to się czyta.
Zauważ, że prawie każde zdanie zaczynam od nowej linii.
no i oczywiście ten sam błąd...
Jesteś pewien, że dobrego exeka skopiowałeś?
Bo może ustawiłeś Plaform Toolset na vs110_xp, ale tylko dla Debug a skopiowałeś exe od Release (albo odwrotnie).
Albo może kompilujesz w 64 bitach a XP masz 32-bitowe...
Pamiętaj też, że jeśli linkujesz dynamicznie runtime, to na docelowym komputerze trzeba zainstalować odpowiednie Redistributable.
Generalnie mogę potwierdzić, że v110_xp działa, i program rusza na XP SP3.
Kolejna rzecz, to VS2012 domyślnie generuje kod dla procesorów z SSE2, więc jeśli chcesz by program działał na starych kompach, trzeba architekturę CPU ustawić na IA32.
Ale w twoim przypadku nie to jest przyczyną, bo nie miałbyś takiego komunikatu.
to ludziom już działały programy na xp, jedynie ja jestem wyjątkiem.. Jakiekolwiek pomysły?
Coś robisz źle ;)
Spróbuj też zaktualizować Visuala do Update 3 RC 2. To jest niby na razie Release Candidate, ale z licencją “go-live” i zawiera jakieś nowe bugfixy związane z obsługą MFC i ATL pod XP-kiem.
Wczoraj zainstalowałem dodatkowo update3 i hmm.. nadal nie działa. Nie linkuje dynamicznie.. mam ustawione dla Release MT, a dla Debug MTD.
I analogicznie mam ustawione dla obu Toolset na Win xp. Problem może się kryć w 64 bitach...
Mam 64 bitową 7, i na niej kompiluję, a potem patrzę na xpku SP3 32 bitowym. Tylko że wcześniej miałem ten sam sprzęt, prawie ten sam system, ale kompilowałem w vc++ 2010 i wsio było ok.
Aha, jeszcze jedno.. W properties -> Linker -> Advanced -> Target Machine, mam ustawione: MachineX86 (/MACHINE:X86)
Linker | System | Minimum Required Version
ustaw na 5.01
nie wiem co to jeszcze może być innego...
Mam ustawione na 5.01... Problem w tym że ja też nie wiem co to może być jeszcze...
udostępnij jakoś skompilowanego exeka z hello world, zobaczymy co się w nim dzieje...
#include <iostream>
using namespace std;
int main()
{
cout << "cos";
int stop;
cin >> stop;
return 0;
}
Opcje - Release mode, Visual Studio 2012 - Windows XP (v110_xp), MT, reszta domyślna
http://www64.zippyshare.com/v/88400882/file.html