inanzitutto grazie $$$,
ho qualche domanda da farti sul tuo intervento (sono un po' ignorante in materia):
1)che significa programma MZ /PE/NE/LE ?
2)come faccio a guardare le variabili d'ambiente passate al programma?
dopo questa premessa, ho fatto così (per prova):
codice:
#include <windows.h>
char DirText[500];
...
GetCurrentDirectory(500,DirText);
printf("\n%s\n",DirText);
strcat(DirText,"\\punctin.txt");
printf("\n%s\n",DirText);
fpt = fopen(DirText,"r");
if(fpt==NULL) printf("\n\nFILE NON PRESENTE NELLA DIRECTORY DELL'ESEGUIBILE");
else{
fscanf(fpt,"%s",stringa);
printf("\n\n%s",stringa);
fclose(fpt);
}
...
bene.
lancio da VC++: tutto ok!
lancio cliccando sull'eseguibile: tutto ok!
lancio da un foglio Excel (nella stessa cartella dell'eseguibile)usando:
codice:
Sub LanciaEXE()
Shell (ThisWorkbook.Path & "\prova_dati_da_file.exe ")
End Sub
non trova il file e, ora la CurrentDirectory è:
F:\Documents and Settings\William\Documenti
che assolutamente non centra nulla con la directory dell'eseguibile!!
(che invece è: C:\Documents and Settings\William\Desktop\IER)
perchè?? che diavolo fa Excel?
penso che quindi non avrei bisogno nemmno del GetCurrentDirectory
se riuscissi a capire perchè mi rida quella directory.
per favore qualcuno mi sveli questo "arcano"