bachdorches
Messages postés8Date d'inscriptionlundi 13 juin 2005StatutMembreDernière intervention19 octobre 2005
-
26 août 2005 à 09:45
bachdorches
Messages postés8Date d'inscriptionlundi 13 juin 2005StatutMembreDernière intervention19 octobre 2005
-
1 sept. 2005 à 15:18
Mon pb. semble un peu bête ou basic.
Premier pt.
Je veux installer le dossier de mon application dans c:\program Files de Windows à partir d'un fichier autoextractible (SFX), puis en executer deux fichiers (.exe et .reg via regedit /s).
Le problème est que je n'arrive pas à constituer le chemin c:\program files\mon_appli\pt.exe ni dans Winrar ni dans mon .cpp.
Evidement, j'ai essayé plusieurs écritures:
system("md c:\\program files\\dataxo");
system("md c:\\"program files"\\dataxo");
system("md c:\\'program files'\\dataxo");
également par concaténation de variables : getenv("ProgramFiles") et strcat.
Est ce que c'est une histoire de formats d'écriture ? de fonction particulière à utiliser ? ...
Deuxième pt., : utilisation de getenv
char *chem1a,*chem1b;
...
chem1=chem1b=getenv("SystemRoot"); // à ce moment chem1a et chem1b contiennent c:\windows
strcat(chem1a,"[file://system32/ \\system32]"); //
...
Mon blocage, à ce niveau est que, avec ces lignes de code, chem1a et chem1b contiennent tous les deux : c:\windows\system32 (pourquoi chem1b ?)
Merci d'avance, (pour cette rqte et pour tout le reste)
bachdorches
Messages postés8Date d'inscriptionlundi 13 juin 2005StatutMembreDernière intervention19 octobre 2005 29 août 2005 à 16:56
BruNews,
"chem1a doit pointer sur un buffer", tu veux dire que buffer est un type de variable? je ne vois pas bien ce que tu veux dire.
mezaya,
C'est bien ce qui semble se passer, mais pourquoi, ça doit faire partie des choses que j'ai mal compris.
char *chem1a,*chem1b pointent sur un type char, pourquoi pointeraient ils sur une même adresse (d'une var de type char)??
Autre question, je veux récupérer l'OS sur lequel mon appli tourne.
J'ai croisé une appli qui travaille à partir des valeurs de _winmajor et _winminor mais je génére plein d'erreurs à la compilation (je travaille avec le compilateur gratuit de Borland BCC5.5)
Ces var. sont supposées être définies dans stdlib.h (pas chez moi en tout cas).
Est ce que qq'un peut m'éclairer ?
Merci, a+
Vous n’avez pas trouvé la réponse que vous recherchez ?
// copie la chaine de caractère de chem1b dans chem1a
strcpy( chem1a , chem1b );
// ici chem1a et chem1b pointent sur 2 zones mémoires différent grâce au malloc()
// donc lors de la concatègnation de chem1a, seul celui-ci sera affecter
// concatègne la chaine de caractèere de chem1a et "\\system32"
strcat(chem1a,"[file://system32/ \\system32]");
// n'oublie pas de libérer la mémoire avec un free( chem1a );
tu peut aussi allouer avec une valeur fixe ex : 256. Mais prend garde a
ce que les chaines ne dépasse jamais 255 caractères ( +
caractères de fin de chaine '\0' = 256 ).
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 29 août 2005 à 17:24
strcat(chem1a,"[file://system32/ \\system32]");
J'espère que chem1a est initialisé comme pointer.
exemple:
char buf[300]; // voila un buffer, 300 octets de réservés
chem1a = buf; // chem1a pointe maintenant sur adresse de buf, là oui il est initialisé
GetVersionEx() pour avoir la version courante de Windows.
Utiliser des variables soi-disants toutes prêtes est une énorme connerie, ça insèrerait dans ton prog un tas de code que tu ne maitriserais pas.