Base de registre [C++] - Programmation
Marsh Posté le 15-10-2001 à 15:10:49
plus simple :
#include <atlbase.h>
CRegKey key
status = key.Create(HKEY_CURRENT_USER,"Software\\blah" );
char path[512];
DWORD sizePath=512;
status = key.QueryValue(path,"macle",&sizePath);
if (status == ERROR_SUCCESS)
//cle trouvee
"macle" etant bien entendu le nom de la cle dont tu veux l info
[edtdd]--Message édité par chrisbk--[/edtdd]
Marsh Posté le 15-10-2001 à 15:25:57
euh, ouaip
c'est pas grave si j'utilise pas les deux grosses fonctions de la mort qui tue ?
Marsh Posté le 15-10-2001 à 15:26:53
les RegOpenKeyEx et consort ?
nope, a mon avis la CRegKey le fait gentillement pour toi
sympa non ?
Marsh Posté le 15-10-2001 à 15:30:50
ok ben je vais tester alors.
Mais ca me fait chier de caler la moitie de ce qu'il faut faire, les fonctions, etc...
Ils pourraient foutre des exemples dans le msdn
Marsh Posté le 15-10-2001 à 16:05:59
le path c'est bien Software//.... paske la j'ai une belle erreur d'execution
Marsh Posté le 15-10-2001 à 23:02:03
plantage ?
ca m'epate, g fait cut & paste de mon code, qui marche
mettons que dans ton registre tu aie le rep HKEY_CURRENT_USER\sofware\godbout et dedans la clé pouet contenant la chaine "brol"
CRegKey key
status = key.Create(HKEY_CURRENT_USER,"Software\\godbout" );
char path[512];
DWORD sizePath=512;
status = key.QueryValue(path,"pouet",&sizePath);
normalement, si je ne bois pas, path doit contenir "brol"
Marsh Posté le 16-10-2001 à 08:52:40
ok ben je m'etais surement plante avec le path.
Je vais reessayer, mais j'aimerais comprendre pourquoi j'arrive pas a utiliser les fonctions RegOpen..., etc...
Suis je vraiment nul ??
Marsh Posté le 16-10-2001 à 08:59:30
non
les fonctions du registres ont souvent 250param, pas tjs faci;e de voir ce qu'ils veulent
Marsh Posté le 16-10-2001 à 09:15:54
Godbout a écrit a écrit : (encore 1 fois) |
la facture devrait bientot arriver
Marsh Posté le 16-10-2001 à 09:21:30
Au fait tu fais koi comme boulot ?
Parce que j'ai remarque que tu connaissais un sacre paquet de truc, comme deux ou trois autres sur ce forum (Guru, el_gringo, BENB)
[edtdd]--Message édité par Godbout--[/edtdd]
Marsh Posté le 16-10-2001 à 09:37:26
je bosse pas, enfin pas vraiment .
Pour le moment je suis stagiaire, jusqu'a decembre . apres ca je retourne a la fac pour 6 mois et apres soit je bosse soit je refait un an, je sais pas encore trop
Marsh Posté le 16-10-2001 à 09:42:43
t'es en quelle annee de fac ?
fac de koi ?
ou t'as appris tout ca ?
quel age ?
oui ?
non ?
Marsh Posté le 16-10-2001 à 09:52:40
IUP GMI 3eme annee, 21 ans (on dirait Maurice avec ses " qui va la je t prie )
j ai appris a cote en fait, depuis que g commencer l'IUT. je code des trucs pour moi, en dose assez...massives
moteur 3D principalement, et tout le tatoin qui va avec (plug in max, editeur et autre joyeusete du genre....)
Marsh Posté le 16-10-2001 à 09:54:11
chrisbk a écrit a écrit : IUP GMI 3eme annee, 21 ans (on dirait Maurice avec ses " qui va la je t prie ) j ai appris a cote en fait, depuis que g commencer l'IUT. je code des trucs pour moi, en dose assez...massives moteur 3D principalement, et tout le tatoin qui va avec (plug in max, editeur et autre joyeusete du genre....) |
ok... (I'm calmed )
[edtdd]--Message édité par Godbout--[/edtdd]
Marsh Posté le 16-10-2001 à 10:02:47
boaf, c juste une question de tps....et g passe pas mal de mon tps a coder ces derniers annees.
je te dirais que l'IUT m'a pas bpc appris (j'apprenais 10x plus vite avec "le C en 21 jours" qu'en suivant les cours de l'IUT) et l'iup pas trop non plus (du moins pour le C++)
tu bosses depuis lgtps ? quel etudes ?
Marsh Posté le 16-10-2001 à 10:04:21
Ca fera bientot 2 mois.
J'ai fait un DUT info, c'est pareil ca m'a appris que les bases, en gros du bon vieux C dos
Je m'etais mis un peu a la prog windows, mais beaucoup moins pousse que ce que je fais (ou que j'ai l'impression de faire) en ce moment.
[edtdd]--Message édité par Godbout--[/edtdd]
Marsh Posté le 16-10-2001 à 10:07:49
IUP = Institut Universitaire ___
GMI = Genie des Methodes Informatiques
reelement je ne sais pas, dites moi...
Marsh Posté le 16-10-2001 à 10:11:27
IUP = ..... professionalise, ou un truc du gout (blah ! )
GMI = genie mathematique et informatique
Marsh Posté le 16-10-2001 à 10:13:52
Merci
topic interessant...
j'ai appris sur la base de registre + IUP et GMI...
Marsh Posté le 16-10-2001 à 10:22:57
Juste pour revenir au topic j'ai reussi a utiliser les deux grosses fonctions.
J'ai essaye meme si ta technique marchait chrisbk, non pas parce que je voulais forcement du bourrin mais plutot pour comprendre un peu les types, les arguments,etc..
Voila voila...
Marsh Posté le 16-10-2001 à 10:27:01
Par contre je trouve ca terrible que les arguments demandes soit du type LPDWORD ou LPBYTE et que si tu les definis comme ca ca marche pas.
Oblige de les definir en tant que unsigned char et unsigned long.
Forcement quand t'es pas au courant c'est chaud (ou alors j'me demmerde encore comme une bille )
Marsh Posté le 16-10-2001 à 10:38:43
LP ca veut dire Long Pointer me semble-t-il...
donc c'est normal qu'il faille declarer une variable puis en passer l'adresse...
par contre une * serait plus parlante (a mon avis)
Marsh Posté le 16-10-2001 à 10:46:40
Ouais mais meme en mettant une * ou n'importe quoi il prend pas.
C'est pour ca que je m'obstinais a vouloir utiliser ces fonctions, histoire de comprendre.
LONG RegQueryValueEx(
HKEY hKey, // handle to key to query
LPTSTR lpValueName, // address of name of value to query
LPDWORD lpReserved, // reserved
LPDWORD lpType, // address of buffer for value type
LPBYTE lpData, // address of data buffer
LPDWORD lpcbData // address of data buffer size
);
Pour lpData
Si tu mets
LPBYTE path[512];
LPBYTE *path[512];
LPBYTE &path[512];
...
Enfin bref rien ne passe.
Il faut mettre unsigned char path[512]
Marsh Posté le 16-10-2001 à 10:49:47
ouais attends, LPBYTE = unsigned char *
bref, quand tu fais
LPBYTE path[512];
c egal a : unsigned char * path[512]
ce qui n'est pas bon
faut faire :
BYTE path[512];
Marsh Posté le 16-10-2001 à 11:05:20
et plutot que de mettre LPBYTE, je trouve qu'ils aurraient du mettre BYTE*...
c'est tout...
[edtdd]--Message édité par BENB--[/edtdd]
Marsh Posté le 16-10-2001 à 11:05:53
ok,
ca m'aidera surement avec les prochaines fonctions, ca m'evitera de batailler pendant des heures.
Marsh Posté le 15-10-2001 à 15:04:08
Il faudrait que je recupere des valeurs dans la base de registre.
J'utilise la fonction RegOpenKeyEx et RegQueryValueEx, mais impossible de les faire fonctionner
Quelqu'un a un exemple ?