oooDieu
Messages postés12Date d'inscriptionjeudi 8 janvier 2004StatutMembreDernière intervention15 mars 2005
-
3 mars 2005 à 10:56
yserver
Messages postés203Date d'inscriptionlundi 2 août 2004StatutMembreDernière intervention 8 septembre 2006
-
3 mars 2005 à 15:46
Bonjour à tous,
Voilà, je débute en C++, et je dois maintenir et faire évoluer un programme.
Je cherche à définir les paramètres d'un compte utilisateur déjà créé :
Password n'expire jamais, User can't change password, etc...
J'utilise dans un premier temps la fonction NetUserGetInfo pour récupérer l' "état" actuel du compte, et cela marche très bien.
J'utilise ensuite la fonction NetUserSetInfo, mais j'avoue avoir
sacrément du mal pour bien définir les paramètres de cette fonction.
Voici mon code :
// Définition des variables.
USER_INFO_1 Buffer;
NET_API_STATUS SetInfoStatus;
char* user;
user = "Test";
wchar_t wuser[5];
// Fonction devant je crois transformer "user" au format demandé par la fonction, c-a-d "LPCWSTR ". (Récupéré sur le net, aucune idée de comment ça marche, et si ça marche...)
Mon code se compile bien, mais à l'exécution s'arrete à l'exécution de
la fonction NetUserSetInfo avec une erreur critique : "L'instruction à
(0x77f3395d) emploie l'adresse mémoire "0xcccccccc". La mémoire ne peut
pas être "read".
yserver
Messages postés203Date d'inscriptionlundi 2 août 2004StatutMembreDernière intervention 8 septembre 2006 3 mars 2005 à 12:46
A mon avis le pb vient de char* user
. Si tu met char user [256], ca devrait aller mieux. De tout façon le nom d'utilisateur sous windows est limité à 256 caractère je crois.
oooDieu
Messages postés12Date d'inscriptionjeudi 8 janvier 2004StatutMembreDernière intervention15 mars 2005 3 mars 2005 à 14:14
Cela ne résoud pas mon problème, au contraire puisqu'en faisant cela,
j'ai une erreur de compilation : "cannot convert from 'char [5]' to
'char [256]' " sur la ligne " user = "Test"; ".
J'avoue que je n'y comprends rien à tous ces types de variables, entre les pointeurs, les valeurs et unicode....
ERRATUM : Dans le code cité ci-dessus, j'ai oublié de mettre cette ligne : DWORD level = 1;
Mais j'ai bien cette ligne dans mon programme, donc, l'erreur ne vient pas de là....
Merci quand même. Si quelqu'un à une autre solution à me proposer...