PDA

View Full Version : [c] come compilare e rendere compatibile l'exe su tutti i pc???


Evil_Tony_89
29-07-2008, 01:15
allora sono un novellino.

ho creato un programma in c (per esercitarmi) di conversione miglia kilometri e viceversa con la scelta iniziale (premi 1 per uno 2 per l'altro)...

ovviamo in win32...

ho provato a fare la generazione batch per compilare il tutto in un'unico exe MA và soltanto sul mio pc e il portatile di mia sorella....

sul computer del mio amico gli dà:

impossibile avviare l'applicazione specificata. la configurazione dell'applicazione nn è corretta etc...

io penso che sia perchè non trova "stdafx.h" che includo all'inizio per poter usare parole chiavi e operazioni comuni... infatti dovrebbe essere una direttiva di precompilazione... ma cmq ora non voglio sparare terminoni sono proprio alle prime armi ^^

xò cm posso fare per distribuire i miei programmini? anche per mandarli al prof che accetta di buon grado il mio impegno ^^! (tranquilli nessun favoritismo è un ex-prof :-D!)

bho ditemi voi!! ^^

io sò che se invece di scrivere <stdafx.h> scrivi "stdafx.h" va a cercarlo prima nella stessa directory dell'exe... allora gli ho passato anche la libreria da mettere nella stessa cartella dell'exe ma niente.. non sò più che inventarmi... vorrei capirla subito stà cosa prima di sbattermi a fare cose più complesse che poi xò girano solo sui pc di casa :(

vi ringrazio dell'attenzione e delle eventuali risposte ^^!

EDIT:
accidenti dimenticavo di dire che stò usando visual studio c++ 2008 express edition!! e che sono sotto Windows Vista!! ^^

bender86
29-07-2008, 08:33
Devi installare questo (http://www.microsoft.com/downloads/details.aspx?displaylang=it&FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf) sui computer sui quali deve girare. stdafx è un file utilizzato nella compilazione, non nell'esecuzione.

Albi89
29-07-2008, 12:29
Devi installare questo (http://www.microsoft.com/downloads/details.aspx?displaylang=it&FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf) sui computer sui quali deve girare. stdafx è un file utilizzato nella compilazione, non nell'esecuzione.

Mh non sono esperto degli ambienti visual, ma questo serve anche per i programmi nativi o solo per quelli managed?

peppepz
29-07-2008, 12:36
Stai usando visual studio? Scegli di usare la libreria C statica, così non hai bisogno di DLL strane nella macchina di destinazione.

Vai nelle proprietà del programma, Configuration properties / C/C++ / Code Generation e per l'opzione Runtime Library scegli "Multi-threaded (/MT)" per la configurazione release e "Multi-threaded debug (/MTd)" per la configurazione debug.

lorenzo001
29-07-2008, 12:56
Probabilmente hai compilato in modalità

Debug

... prova a compilare in modalità

Release

e a distribuire il tuo exe ...

Evil_Tony_89
29-07-2008, 15:13
ok dunque riassumiamo un pò..

il link che mi hai passato è sicuramente la fonte della risoluzione del problema però io volevo trovare un modo per farne a meno ... fare una sorta di installer ecco....oppure joinarli all'exe in modo tale da non averne bisogno (non tutti hanno il VS redibustrable installato).

libreria C statica......questo sembrerebbe essere un buon consiglio lo provo e vi faccio sapere!! ^^

per l'ultimo invece rispondo che ho compilato la release ^^.

Evil_Tony_89
29-07-2008, 15:21
Stai usando visual studio? Scegli di usare la libreria C statica, così non hai bisogno di DLL strane nella macchina di destinazione.

Vai nelle proprietà del programma, Configuration properties / C/C++ / Code Generation e per l'opzione Runtime Library scegli "Multi-threaded (/MT)" per la configurazione release e "Multi-threaded debug (/MTd)" per la configurazione debug.

ehm non riesco a trovarlo ^^'''.... stò usando visual studio c++ express edition 2008... forse in questa versione non ce o è da un'altra parte... e ce l'ho in italiano ^^!