RegSetValueEx(); Fehler
-
Hallo,
ich möchte mit dem folgenden Codeschnipsel in der Registry einen Schlüssel und den dazugehörigen Key erstellen. Leider gibt mein Compiler (Dev-C++) eine Fehlermeldung aus:
C:\Dokumente und Einstellungen\Admin\Desktop\projekt\main.cpp In function `int main(int, char**)': C:\Dokumente und Einstellungen\Admin\Desktop\projekt\main.cpp In function `int main(int, char**)': C:\Dokumente und Einstellungen\Admin\Desktop\projekt\Makefile.win [Build Error] [main.o] Error 1Wenn ich das richtig sehe, wird der Fehler durch eine falsch deklarierte Variable hervorgerufen. Ich habe es schon mit anderen Datentypen versucht, aber ohne Erfolg. Hier also der Code:
#include <conio.h> #include <windows.h> #include <winreg.h> using namespace std; int main(int argc, char *argv[]) { // schlüssel hinzufügen HKEY hKey; RegCreateKeyEx(HKEY_CURRENT_USER,"Test",0,0,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,0); // key erstellen BYTE cString[]=""; RegSetValueEx(hKey,"KeyName",0,REG_SZ,cString,strlen(cString)+1); return 0; }Danke für alle Antworten!
-
steht nach dem : nicht der Fehler?
-
Sorry, hatte doppelt eingefügt. Das steht in der Mitte:
16 C:\Dokumente und Einstellungen\Julius\Desktop\speedup_reg\main.cpp syntax error before `char'
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
#include <windows.h> int main() { HKEY hKey; DWORD dwDispo; RegCreateKeyEx(HKEY_CURRENT_USER, TEXT("Key"), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hKey, &dwDispo); TCHAR szData[128]; _sntprintf(szData, 128, TEXT("Value")); RegSetValueEx(hKey, "KeyName", 0, REG_SZ, (LPBYTE)(&szData), strlen(szData) + 1); RegCloseKey(hKey); }sollte eigentlich funktionieren ...
edit
text-makro eingesetzt und Schlüsselnamen verändert und nen Kommentar von dir entfernt.
-
OT: 15 Jahre nach einführung von Unicode in die Windows-Welt sollten auch die letzten Programmierer endlich anfangen konsequent mit TCHAR zu arbeiten...
#include <windows.h> #include <tchar.h> int _tmain() { // schlüssel hinzufügen HKEY hKey; DWORD dwDispo; RegCreateKeyEx(HKEY_CURRENT_USER, _T("RemDlgPos"), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hKey, &dwDispo); TCHAR szData[128]; _sntprintf(szData, 128, _T("Value")); RegSetValueEx(hKey, _T("KeyName"), 0, REG_SZ, (LPBYTE)szData, (DWORD) ((_tcslen(szData) + 1) * sizeof(TCHAR))); RegCloseKey(hKey); }PS: Hab das Beispiel auf MSDN auch gleich korrigiert

-
Vielen Dank euch beiden, funktioniert einwandfrei!