Registry auslese Problem

Flutscherino

Grünschnabel
Hallo,


Ich habe jetzt in mehreren Foren ein Beispiel gefunden, um in C++ Die Registry zu lesen, doch leider funktioniert keines der Beispiele..

Ich kriege immer den error:
error C2664: 'RegOpenKeyW' : cannot convert parameter 2 from 'const char [50]' to 'LPCWSTR'

Ich habe dann gelesen, dass ich meine Projekteinstellungen umstellen muss, doch wenn ich dann auf "Use Multi-Byte Character Set" stelle, kriege ich den error:
error LNK2028: unresolved token (0A00000F) "extern "C" long __stdcall RegCloseKey(struct HKEY__ *)" (?RegCloseKey@@$$J14YGJPAUHKEY__@@@Z) referenced in function "private: void __clrcall Launcher::Form1::Form1_Load(class System::Object ^,class System::EventArgs ^)" (?Form1_Load@Form1@Launcher@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)

Ich habe keine Ahnung was ich falsch mache :/

Das einzige was ich will, ist das wenn ich auf den Button "Launch" klicke, das es dann das spiel startet, das es unter dem gewünschten Registry Pfad findet.. doch es scheint mir schwieriger als erwartet


Daten:
Microsoft Visual Studio 2008
Version 9.0.21022.8 RTM
Microsoft .NET Framework
Version 3.5

Installed Edition: Professional

Microsoft Visual C# 2008 91605-140-3728701-60096
Microsoft Visual C# 2008

Microsoft Visual C++ 2008 91605-140-3728701-60096
Microsoft Visual C++ 2008

Microsoft Visual Studio 2008 Tools for Office 91605-140-3728701-60096
Microsoft Visual Studio 2008 Tools for Office

Microsoft Visual Web Developer 2008 91605-140-3728701-60096
Microsoft Visual Web Developer 2008

Forenbeispiele:
http://www.tutorials.de/forum/c-c/77316-c-eintrag-der-registry-auslesen.html
http://www.wer-weiss-was.de/theme158/article2700025.html
http://www.coding-board.de/board/showthread.php?t=18690
 
Moin,

sorry, aber meine Glaskugel ist derzeit zur Reparatur!
Also wäre der konkrete Code (bitte mit Code-Tags) nett ;-]

Gruß
Klaus
 
Hallo,

für alle Texte musst du das _T() - Makro verwenden (Unicode-Problematik) :
Code:
RegOpenKey(HKEY_CURRENT_USER, _T("Software\\..."), ...);

Gruß
MCoder
 
Danke, aber leider geht es immernoch nicht..

Code:
	unsigned char temp[99] = {""};	
	unsigned long size = sizeof(temp);
	HKEY hKey;
	
	RegOpenKey(HKEY_CURRENT_USER, _T("Software\\Microsoft\\MediaPlayer\\Setup\\CreatedLinks"), &hKey);

führt zu

1> Launcher.obj : error LNK2028: unresolved token (0A00000F) "extern "C" long __stdcall RegOpenKeyA(struct HKEY__ *,char const *,struct HKEY__ * *)" (?RegOpenKeyA@@$$J212YGJPAUHKEY__@@PBDPAPAU1@@Z) referenced in function "private: void __clrcall Launcher::Form1::Form1_Load(class System::Object ^,class System::EventArgs ^)" (?Form1_Load@Form1@ Launcher@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)
1> Launcher.obj : error LNK2019: unresolved external symbol "extern "C" long __stdcall RegOpenKeyA(struct HKEY__ *,char const *,struct HKEY__ * *)" (?RegOpenKeyA@@$$J212YGJPAUHKEY__@@PBDPAPAU1@@Z) referenced in function "private: void __clrcall Launcher::Form1::Form1_Load(class System::Object ^,class System::EventArgs ^)" (?Form1_Load@Form1@ Launcher@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)
 
Hmm, war eigentlich gar nicht die Absicht .net zu programmieren :p

ich wollte ein einfaches Visual C++ machen, indem ich ein Programm per Button öffne..
und ich habe es mit Visual Studio 2008 -> New Project -> Visual C++ -> Windows Form Application eröffnet..

also sollte es doch nicht .net sein..?
 
ich wollte ein einfaches Visual C++ machen, indem ich ein Programm per Button öffne..
und ich habe es mit Visual Studio 2008 -> New Project -> Visual C++ -> Windows Form Application eröffnet..

also sollte es doch nicht .net sein..?
Doch, du hast damit ein C++/CLI-Projekt angelegt. Visual Studio macht das leider bei der Auswahl der Projektvorlagen nicht so ganz klar. Wenn du die CLR nicht verwenden willst, solltest du als Vorlage „Win32-Konsolenanwendung“ oder „Win32-Projekt“ auswählen.

Grüße, Matthias
 

Neue Beiträge

Zurück