Rückker zum Standard: void verursacht absturz ?
-
#include <cstdlib> #include <iostream> #include <windows.h> #include <algorithm> using namespace std; void read() { cout<<"Blubber"; cin.get(); } int main(int argc, char *argv[], void read()) { cout << "test"; read(); cin.get(); return EXIT_SUCCESS; }So hab ich angefangen, mit einer Prozedur ohne Parametern/Argumenten.
Aber bei ausführung gibt er noch test auf, läd 2 sekunden und stürzt dann ab.
Warum ?
Muss ich es denn umbedingt als Klassenmember initialisieren ?Danke
-
Nimm erstmal nur
int main()ps: Sehr fantasievoller Absturz, sich in der Kommandozeile die Adresse eine Funkttion geben zu lassen.
-
Gut jetzt funzt es Wundervoll.
Wieso geht denn das jetzt ?? ich meine vorher hat er immer gemeckert, dass ich
void read() in keine funktion mit return value ähm ähm gedingst ist. (implementiert ?)
hab diese Fehlermeldung nicht mehr auf meinem schirm (im gedächtnis)
-
Tim06TR schrieb:
Gut jetzt funzt es Wundervoll.
Wieso geht denn das jetzt ??Weil es jetzt richtig ist.
Tim06TR schrieb:
ich meine vorher hat er immer gemeckert, dass ich
void read() in keine funktion mit return value ähm ähm gedingst ist. (implementiert ?)Reiner Zufall. Vorher war das Dings nämlich flasch gedingst und zwar so ubglaublich falsch, daß Du froh sein kannst, daß Dein Rechner noch funktioniert.
Beachte: Es gibt keine Forderungen des Standards bezüglich unglaublich falschen Dingsen. Es war also gar nicht flasch vom Compiler, Dir ein Programm zu dingsen, das abdingst. Höflich war es nicht, ein netter Dings hätte eine Fehlermeldung gedingst.
-
xD hahaha.
ok:
char temp[99] = {""}; DWORD* reg; unsigned long size = sizeof(temp); HKEY hKey; RegOpenKey(HKEY_LOCAL_MACHINE, "Software\\MSP", &hKey); RegQueryValueEx(hKey, "Key Version", NULL, NULL, NULL, reg); cin.get(); string Value; Value = char(reg); cout << reg << endl;(Formatierung nicht originalgetreu)
Er list diesen Wert als ein hex aus, wie krieg ich das denn jetzt in einen char oder string. bei VCL wüsste ich wie ichs machen müsste.
er liest:
0x7c800000
( == 1.0)Danke für vorher und für bald
.
-
stringstream
-
oh...
ja den benutzte ich sonst auch immer ^^EDIT: Das löst aber nicht das prob :),
denn ich hab im string dann die 0x7c800000.
Muss ich dazu jetzt extra nen algo zum umwandeln schreiben ?
Oder fällt noch jemanden ne andere Funktion ein (zum lesen oder umwandeln)?
-
0x weglesen
auf hex stellen
lesen
-
auf hex stellen
wo bitte ?
-
std::hex, nachzulesen auf www.cplusplus.com
-
ähm mir ist aufgefallen, dass er nicht liest was er lesen soll.
Kann mir den keiner ein Code Beispiel geben ?
Bei VCL ist das so VIEL einfacher.
und bei MFC auch.EDIT: Wieso ist der String hier leer ?:
std::string Text; HKEY hKey; RegOpenKey(HKEY_LOCAL_MACHINE, "Software\\MSP", &hKey); RegLoadKey(hKey,"Key Version",Text.c_str()); cout << Text << endl; cout << "Fertig" << endl;