cs_thejrem
Messages postés26Date d'inscriptionlundi 22 octobre 2007StatutMembreDernière intervention11 juin 2010
-
26 mai 2010 à 02:54
cs_yex
Messages postés28Date d'inscriptionjeudi 3 octobre 2002StatutMembreDernière intervention31 mai 2010
-
31 mai 2010 à 00:16
bonjour
je devloppe en c sur visual studio 2008 et je test l'existance d'un fichier en faisant ceci mais j'ai un probleme
if (dwMajorVersion == 5)//test si l'os est XP
{
GetEnvironmentVariable(TEXT("USERPROFILE"),user5,512);//recuperation de la variable d'environement %USERPROFILE%
CString start=user5 ;
start+=TEXT("\\Menu Démarrer\\Programmes\\Démarrage\\ServeurSocket.exe");//chemmun d'accé au repertoir demarrage
FILE* tstart = fopen(start,"r");//ouvertur du fichier
if (tstart == 0)//test si l'ouvertur a echoué
{
CheckEtat=0; //checkbox decoché initialement
}
else //si le fichier c'est ouvert
{
CheckEtat=1; //checkbox coché initialement
int close= fclose(tstart);//fermeture du fichier
}
}
sauf mon probleme est que fopen veut un const char* et start est un cstring
j'ai testé deux methode et ça ne marche pas
const char* temp = start.GetBuffer();
et
const char *temp = ( const char *)(LPCTSTR)start;
est ce quelqu'un aurai une iddé comment convertir un cstring en const char* ou sinon un fopen aceptant un cstring
cs_thejrem
Messages postés26Date d'inscriptionlundi 22 octobre 2007StatutMembreDernière intervention11 juin 2010 27 mai 2010 à 01:57
bon voila une solution qui fonctionne en plus unicode !!
if (dwMajorVersion == 6 )//test si l'os est vista ou seven
{
GetEnvironmentVariable(TEXT("APPDATA"),appdata,512);
CString start=appdata ;
start+=TEXT("\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\ServeurSocket.exe");
HANDLE tstart= CreateFile(start, GENERIC_READ, 0,NULL,OPEN_EXISTING, 0,NULL);
if (tstart == 0)
{
CheckEtat=0;
}
else
{
CheckEtat=1;
}
CloseHandle(tstart);
}
UpdateData(false);
fregolo52
Messages postés1114Date d'inscriptionmercredi 15 juin 2011StatutMembreDernière intervention 6 mai 20214 26 mai 2010 à 08:55
salut
ca ne marche pas !!! bah wouai !! mais quelles sont les erreurs !!!!!
GetBuffer prend un entier en paramètre et retourne un LPTSTR, pas de const. Et
const char *temp = ( const char *)start; // pourquoi tu avais mis un double cast ?
cs_louis14
Messages postés793Date d'inscriptionmardi 8 juillet 2003StatutMembreDernière intervention10 février 20218 26 mai 2010 à 10:45
Bonjour,
Pour ma part j'utiliserai :
char* buf = start.GetBuffer(start.Getlength())
et surtout une fois que c'est fini start.releaseBuffer().
Cherche l'aide MSDN pour la classe CString, GetBuffer.
cs_thejrem
Messages postés26Date d'inscriptionlundi 22 octobre 2007StatutMembreDernière intervention11 juin 2010 27 mai 2010 à 01:04
je suis debutant et apres modification j'ai quelques erreur
je pense que je vais essayer de remplacé fopen par des creatfile il prend des cstring lui
enfin il me semble
Vous n’avez pas trouvé la réponse que vous recherchez ?