Anfängerfrage Registry (VC++ vs Bloodshed C++)

MicroPilot

Grünschnabel
Hallo zusammen,
bin anfänger in der C++ Programmierung und habe verzweifelt versucht den unter aufgeführten Code den ich auch hier im Forum gefunden habe zum laufen zu bringen. Mein erster Versuch der sich über mehrere Stunden hinweg gezogen hat habe ich mit VC++ 6.0 gemacht, neue Konsolenanwendung ohne MFC und ständig fehler (HKEY nichtdeklarierter Bezeichner usw.)
Das ganze in Bloodshed DEVC++ eingefügt und es läuft sofort ohne Fehler.

Wer kennt sich mit VC++ 6.0 gut aus und kann mir sagen womit VC++ das Problem hatte ?

Danke im voraus.

Hier der Code:

#include "stdafx.h"
#include <windows.h>
#include <stdio.h>

int main(int argc, char **argv)
{
unsigned char temp[99] = {""};
unsigned long size = sizeof(temp);
HKEY hKey;

RegOpenKey(HKEY_CURRENT_USER, "Software\\Microsoft\\MediaPlayer\\Setup\\CreatedLinks", &hKey);
RegQueryValueEx(hKey, "AppName", NULL, NULL, temp, &size);
RegCloseKey(hKey);
printf("Value: %s (Size: %lu)\n", temp, size);
return 0;
}
 
Bei mir klappts (nachdem ich #include "stdafx.h" rausgeschmissen habe) tadellos. Ich hab einfach ein neues Projekt gemacht und Win32-Konsolenanwendung ausgewählt.
 
Immer noch Fehler

Hy, ich wähle in VC++

WIN32 Konsolenanwendung
|________Eine einfache Anwendung

Entferne #include "stdafx.h"
füge den Code ein und danach kommt:

Unerwartetes Dateiende waehrend der Suche nach der Direktive fuer die vorkompilierte Header-Datei
Fehler beim Ausführen von cl.exe.

Was zum Teufel mach ich hier Falsch ? Sorry wenn der Fehler für Profis banal klingt bin eben anfänger.
 
"Unerwartetes Dateiende waehrend der Suche nach der Direktive fuer die vorkompilierte Header-Datei" bedeutet, dass er (üblicherweise) stdafx.h sucht.

Wenn du die nicht benötigst, kannst du in den Projekteinstellungen "vorkompilierte Header" abstellen.

Diese Option soll angeblich die Kompiliergeschwindigkeit erhöhen (tut das aber nur, wenn man nicht die Header ändert).
 
Die alten Fehler wieder aktuell

Hat geholfen bis auf die Tatsache das jetzt wieder die selben Fehler erscheinen wie oben beschrieben.

error C2065: 'HKEY' : nichtdeklarierter Bezeichner
error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'hKey'
error C2065: 'hKey' : nichtdeklarierter Bezeichner
error C2065: 'RegOpenKey' : nichtdeklarierter Bezeichner
error C2065: 'HKEY_CURRENT_USER' : nichtdeklarierter Bezeichner
error C2065: 'RegQueryValueEx' : nichtdeklarierter Bezeichner
error C2065: 'RegCloseKey' : nichtdeklarierter Bezeichner
Fehler beim Ausführen von cl.exe.
 
Ignorierst du mich?

Das Problem kenne ich . Du darfst nicht "Eine einfache Konsolenanwendung" auswählen sondern wählst einfach "Ein leeres Projekt".

Da fügst du dann eine cpp Datei ein, kopierst den Code rein und fertig.
 
Nein ! Sorry ich ignoriere Dich nicht !

Habe deinen Tip befolgt !
"Leeres Projekt"
Habe dann eine neue "C++ Quellcodedatei" hinzugefügt, den Code eingefügt und eben genau die oben aufgeführten Fehler bekommen.
 
Ich kann mich nicht mehr genau erinnern, aber gibt es auch einen Projekt-Typ "Win32-Anwendung" ? Dann müsstest du die main aber zu einer WinMain umfunktionieren.

Der Code selbst sieht nämlich astrein aus, #include<windows.h> sollte vollkommen ausreichen (stdio.h evtl. für das printf).
 
Ich geb auf !

Habe gerade auch mit Win32Anwendung ausprobiert bekomme aber immer noch

error C2065: 'HKEY' : nichtdeklarierter Bezeichner
error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'hKey'
error C2065: 'hKey' : nichtdeklarierter Bezeichner
error C2065: 'RegOpenKey' : nichtdeklarierter Bezeichner
error C2065: 'HKEY_CURRENT_USER' : nichtdeklarierter Bezeichner
error C2065: 'RegQueryValueEx' : nichtdeklarierter Bezeichner
error C2065: 'RegCloseKey' : nichtdeklarierter Bezeichner
Fehler beim Ausführen von cl.exe.

Danke an alle für eure Bemühungen habe meine VC++6.0 CD soeben an die Wand genagelt und meinen PC einem Exorzisten überlassen.
Mein einziger trost : Es gibt auch Kompiler für meinen PC die so etwas anstandslos machen !
 
Zuletzt bearbeitet:
Zurück