ok, ca m'aidera surement avec les prochaines fonctions, ca m'evitera de batailler pendant des heures.
BENB
et plutot que de mettre LPBYTE, je trouve qu'ils aurraient du mettre BYTE*... c'est tout...
[edtdd]--Message édité par BENB--[/edtdd]
chrisbk
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];
godbout
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]
BENB
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)
chrisbk
pas de pb :)
A l'avenir tu auras le choix :)
godbout
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 :D)
godbout
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... :)
BENB
Merci :jap:
topic interessant...
j'ai appris sur la base de registre + IUP et GMI...
chrisbk
IUP = ..... professionalise, ou un truc du gout (blah ! :D) GMI = genie mathematique et informatique
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 :D
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]
chrisbk
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 ?
godbout
chrisbk a écrit a écrit :
IUP GMI 3eme annee, 21 ans (on dirait Maurice avec ses " qui va la je t prie :D)
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 :D)
[edtdd]--Message édité par Godbout--[/edtdd]
chrisbk
IUP GMI 3eme annee, 21 ans (on dirait Maurice avec ses " qui va la je t prie :D)
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....)
godbout
t'es en quelle annee de fac ?
fac de koi ?
ou t'as appris tout ca ?
quel age ?
oui ?
non ?
chrisbk
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
godbout
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]
chrisbk
Godbout a écrit a écrit :
(encore 1 fois:))
la facture devrait bientot arriver :D
godbout
ok ca marche merci ;) (encore 1 fois:))
chrisbk
non :D
les fonctions du registres ont souvent 250param, pas tjs faci;e de voir ce qu'ils veulent :)
godbout
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 ?? :??:
chrisbk
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"
Kouye
intéressant ce pti topic :)
godbout
le path c'est bien Software//.... paske la j'ai une belle erreur d'execution
godbout
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
chrisbk
les RegOpenKeyEx et consort ?
nope, a mon avis la CRegKey le fait gentillement pour toi
sympa non ? :)
godbout
euh, ouaip
c'est pas grave si j'utilise pas les deux grosses fonctions de la mort qui tue ?
chrisbk
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]
godbout
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 :??: