Comment puis-je lire une valeur de clé de Registre et l'imprimer à l'écran avec la MessageBox()
Je suis novice en C++ et pour WinCe en développement.
Je veux lire une chaîne de caractères à partir de la base de registre et d'affichage avec le MessageBox()
. J'ai essayé ce qui suit.
HKEY key;
if (::RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("System\\CurrentControlSet\\GPS Intermediate Driver\\Drivers\\SiRFStar3HW"), 0, KEY_READ, &key) != ERROR_SUCCESS)
{
MessageBox(NULL,L"Can't open the registry!",L"Error",MB_OK);
}
char value[5];
DWORD value_length=5;
DWORD type=REG_SZ;
RegQueryValueEx(key,(LPCTSTR)"Baud", NULL, &type, (LPBYTE)&value, &value_length);
wchar_t buffer[5];
_stprintf(buffer, _T("%i"), value);
::MessageBox(NULL,buffer,L"Value:",MB_OK);
::RegCloseKey(key);
Donc je sais somethings mal ici, mais comment puis-je le résoudre?
Peut-être que vous devriez commencer à comprendre la différence entre ANSI et Unicode. Gardez à l'esprit que Windows CE prend uniquement en charge le format Unicode versions de la plupart des fonctions de l'API pour réduire la taille du code. Pendant que vous y êtes, lisez également par le biais de Le Minimum Absolu que Tout Développeur Doit Absolument, Positivement Savoir Sur Unicode Et les Jeux de Caractères (Pas d'Excuses!).
Beaucoup d'erreurs ici. Registre de code est faux. Pourquoi lisez-vous en char tableau? Vous essayez de convertir la valeur de chaîne avec %i mais de passer un pointeur vers char tableau. Et puis vous déclarer tableau de longueur 5, mais souhaitez pour contenir 6 caractères. Retour à la base en premier. Essayez de faire ce travail de code avec le code du registre supprimés. Ensuite, essayez de travailler sur la façon de lire de registre.
vous avez raison. Il y a beaucoup d'autres différences que ce que je vais obtenir une réponse.
Im débutant je sais. Je viens de lire un ebook au sujet de cela, je n'ai jamais apprendre à l'école. Le registre de lecture à partir d'un exemple ici: dreamincode.net/forums/topic/... maintenant, je veux savoir moi-même, et les tutoriels sur le net...
Alors, comment à la recherche d'un code de travail?
Beaucoup d'erreurs ici. Registre de code est faux. Pourquoi lisez-vous en char tableau? Vous essayez de convertir la valeur de chaîne avec %i mais de passer un pointeur vers char tableau. Et puis vous déclarer tableau de longueur 5, mais souhaitez pour contenir 6 caractères. Retour à la base en premier. Essayez de faire ce travail de code avec le code du registre supprimés. Ensuite, essayez de travailler sur la façon de lire de registre.
vous avez raison. Il y a beaucoup d'autres différences que ce que je vais obtenir une réponse.
Im débutant je sais. Je viens de lire un ebook au sujet de cela, je n'ai jamais apprendre à l'école. Le registre de lecture à partir d'un exemple ici: dreamincode.net/forums/topic/... maintenant, je veux savoir moi-même, et les tutoriels sur le net...
Alors, comment à la recherche d'un code de travail?
OriginalL'auteur Luther | 2012-05-20
Vous devez vous connecter pour publier un commentaire.
La navigation de l'API Win32 peut être une affaire délicate. L'Api du registre sont quelques-uns des plus compliqué. Voici un programme court pour démontrer comment lire une chaîne de registre.
Notes:
std::wstring
. Cela rend la gestion de chaîne d'un jeu d'enfant.RegQueryValueEx
retourneREG_SZ
données est terminée par null. Ce code traite qu'en tronquant au-delà du premier caractère nul. Dans le cas où la valeur de retour n'est pas null, la troncature ne se produira pas, mais la valeur sera toujours bien.MessageBox
. Comme ceci:MessageBox(0, value.c_str(), L"Caption", MB_OK)
Re, je ne comprends pas ce commentaire.
Exemple sur votre code que vous utilisez iostream. Pour WinCe n'est pas disponible.
Ensuite iostream. C'est juste pour la sortie de la console.
bien sûr que non. C'est à partir de iostream. Remplacer avec votre choix de sortie du mécanisme. Si la fonction que j'ai écrit compile sur ce alors vous êtes de l'or. Vraiment, vous devriez passer un peu de temps avec un bon livre et d'obtenir sur le dessus de la base. Ne courir avant de pouvoir marcher.
OriginalL'auteur David Heffernan
Voici un code source complet pour lire une valeur de clé de Registre et l'imprimer à l'écran:
Espère que cet exemple sera utile qui sont à la recherche de ce problème.
OriginalL'auteur RajibTheKing
Ce n'est pas testée (mon appareil n'a pas votre clé/valeur), mais compile pour CE et vous donne l'essentiel de la façon dont vous faites ce que vous êtes après:
#include
OriginalL'auteur ctacke
Lors de l'utilisation d'un tableau de char, vous devrez définir les pas de la mémoire tampon, mais le pointeur vers le tampon, comme ceci:
Non, ce n'est pas ça. Les matrices de décomposition de pointeurs vers le premier élément.
OriginalL'auteur João Marcelo Brito
suffit d'utiliser RegQueryValueEx et le mettre dans buf
OriginalL'auteur muko