PDA

View Full Version : Problema con "_putenv" (VS6 vs. VS2005)


giangian2
31-10-2006, 15:11
Ciao a tutti,
ho un progetto che compilo sia con Visual Studio 6.0 che con Visual Studio 2005, i file ed il codice sono esattamente gli stessi, tale progetto linka a sua volta una libreria.
Ho la necessita` (che non sto qui a spiegarvi altrimenti il 3d diventa troppo lungo) di modificare il valore di una variabile d'ambiente per l'istanza corrente, tale variabile d'ambiente viene anche letta dalla libreria linkata.
Il codice per cambiare la variabile d'ambiente e` il seguente:


char szVar[128];
strcpy(szVar, "PIPPO=C:\NewFolder");
_putenv(szVar);


mentre quello per leggere la variabile d'ambiente e`:


char *pVar = getenv("PIPPO");


questo viene eseguito nella "InitInstance" dell'applicazione.
Con VisualStudio 6.0 non c'e` alcun problema, la variabile d'ambiente viene modificata per l'istanza corrente dell'applicazione ed a sua volta anche la libreria linkata quando legge la variabile d'ambiente trova il nuovo valore.
Con VisualStudio 2005 questa operazione non funziona, o meglio funziona solamente per l'istanza corrente dell'applicazione ma quando la libreria linkata legge la variabile d'ambiente la funzione "getenv" ritorna il valore originale.
Avete qualche idea su come poter risolvere tale problema, magari e` solamente qualche settaggio del progetto... io non ho nessuna idea.

Grazie mille in anticipo a tutti.

ciaooooo