PDA

Visualizza la versione completa : Compilare per tutte le versioni di Windows


xshell
16-03-2009, 14:49
Buongiorno.

Ho un problema: ho compilato un programma con VS2008 SP1 e Microsoft SDK 6.1 su Windows Vista e l'eseguibile risultante funziona solo su Vista e Server 2008 ma non su Windows XP... la causa potrebbe essere Microsoft SDK 6.1 oppure ho sbagliato a fare o a non fare qualche cosa? Come posso compilare un applicazione per poterla eseguire su delle versioni Windows di mia scelta? (Il progetto che devo compilare è molto complesso e gran parte del codice non è stato scritto da me).

Grazie per la disponibilità

oregon
16-03-2009, 16:18
Che vuol dire "non funziona su XP"?

Stoicenko
16-03-2009, 16:43
forse manca il redistributable o il framework se hai usato c++ gestito

l'sdk non centra nulla (secondo me)

oregon
16-03-2009, 17:38
Magari si potrebbero evitare un po' di post e di "forse ... forse" se si dicesse subito qual e' il problema ...

xshell
16-03-2009, 18:44
Originariamente inviato da oregon
Magari si potrebbero evitare un po' di post e di "forse ... forse" se si dicesse subito qual e' il problema ...

L'ho detto mi sembra... io ho compilato un programma con VS2008... se lancio tale programma con Windows Vista oppure Windows Server 2008, il programma si avvia, se lo lancio da Windows XP, mi dice "Errore!"... e dire che su Windows XP ho installato Visual C++ 2008 Redistributable... quindi non mi spiego il motivo dell'errore... va beh, proverò a risoolverlo da solo, molto probabilmente è una sciocchezza che non riesco a vedere.

MItaly
16-03-2009, 19:18
Puoi postare il codice del programma? Forse stai facendo uso di qualche API disponibile solamente per Windows Vista e Windows Server 2008.

xshell
16-03-2009, 19:25
Originariamente inviato da MItaly
Puoi postare il codice del programma? Forse stai facendo uso di qualche API disponibile solamente per Windows Vista e Windows Server 2008.

Ehm... non credo sia possibile... saranno qualche decina di milioni di righe distribuite su un migliaio di file (ovviamente non le ho scritte io... io sto solo personalizzando il programma e rimettendo a posto il codice sorgente, troppo confuso). Vado alla ricerca di API o provo a consultare qualche guida di VS o qualcosa del genere... alla fine troverò qualcosa (si spera).

oregon
16-03-2009, 19:32
Originariamente inviato da xshell
L'ho detto mi sembra...

No ... non l'avevi detto e continui a non dirlo!


mi dice "Errore!"...

E perche' non scrivi il resto? Cosa si capisce se dici solo "Errore!" ?

MItaly
16-03-2009, 19:33
Be', se prima si compilava ed eseguiva correttamente su tutte le versioni di Windows puoi restringere la ricerca alle modifiche che hai apportato tu, o a qualche impostazione di Visual Studio che hai toccato.

xshell
16-03-2009, 19:50
Originariamente inviato da oregon
No ... non l'avevi detto e continui a non dirlo!

E perche' non scrivi il resto? Cosa si capisce se dici solo "Errore!" ?

Un momento, forse mi sono spiegato male... il sorgente si compila su tutti i Windows senza riportare errori. Una volta avuto l'eseguibile con tutto l'ambaradan di librerie allegato, però, questo si avvia soltanto su Vista e Server 2008. Se lo avvio da XP, si apre la finestrella del Prompt dei comandi che dice: "Error!". Niente di più, niente di meno. Che devo dire di più? Visual Studio fa il suo lavoro correttamente... e come API viene utilizzato WxWidgets (che non mi ha mai dato filo da torcere su tutte le piattaforme, quindi è da scartare a priori l'ipotesi che sia lui la causa)...


Originariamente inviato da MItaly
Be', se prima si compilava ed eseguiva correttamente su tutte le versioni di Windows puoi restringere la ricerca alle modifiche che hai apportato tu, o a qualche impostazione di Visual Studio che hai toccato.

Diciamo che mi sono accorto solo adesso dell'incompatibilità: su XP lo compilavo solo, mentre lo eseguivo solo su Vista... adesso, per puro caso, l'ho provato su XP e non funziona. Le modifiche che ho apportato sono veramente ridotte e toccano solo la parte grafica (piccoli aggiustamenti)... il nucleo del programma rimane identico (anche perché non saprei come metterci mano).

Loading