View Single Post
Old 18-02-2009, 19:14   #6
xeeynamo
Member
 
L'Avatar di xeeynamo
 
Iscritto dal: Jan 2008
Messaggi: 242
Quote:
Originariamente inviato da fero86 Guarda i messaggi
xeeynamo, il codice che hai riportato commette atti osceni: i piu evidenti, ma non gli unici, sono il fatto che ritorni l'indirizzo di un buffer locale (che viene deallocato non appena esci dalla funzione), il fatto che non controlli i valori di ritorno ed il fatto che non chiudi gli handles che apri.

poi non capisco perché hai allocato 255 DWORD anziché uno visto che te ne bastava uno solo; ed infine non capisco come mai 255 e non 256

ti riscrivo il codice con qualche correzione fondamentale, ma non l'ho testato e quindi non so se ci sono altri errori.


Codice:
#include <stdio.h>
#include <windows.h>
#include <tchar.h>

DWORD RegGet(HKEY hKey, LPCTSTR path, LPCTSTR name){
    HKEY hk;
    DWORD dwSize=sizeof(DWORD);
    DWORD Return;

    RegOpenKeyEx(hKey, path, 0, KEY_ALL_ACCESS, &hk);
    RegQueryValueEx(hk, name, NULL, NULL, (BYTE*)&Return, &dwSize);
    RegCloseKey(hk);
    return Return;
}

int main(){
    printf("%X", RegGet(HKEY_LOCAL_MACHINE, _T("SOFTWARE\\MICROSOFT\\WINDOWS NT\\CURRENTVERSION"), _T("InstallDate")));
    return 0;
}
per il futuro leggi piu attentamente la documentazione in MSDN, ti avrebbe chiarito tutto.
Oddio, scandaloso DEVO imparare a programmare!!! Grazie per i consigli e grazie per il codice che risulta funzionare alla perfezione spero proprio di raggiungere livelli alti!
Aspetto le altre risposte per le altre domande e poi il topic può essere tranquillamente chiuso
__________________
Asus P8Z77-V Deluxe su CM Storm Stryker / Intel 3570K @4.2GHZ con Corsair H100 / 2x DDR3-1600 Corsair Vegenance @1600mhz CAS 9-9-9-24 / ATI Radeon 4870 @150mhz in idle, @800mhz ingame / Samsung 840 Basic 120gb + Seagate Barracuda 2TB 7200.14 64MB / Asus VW222S 1680x1050
Asus U36SD-RX002V
xeeynamo è offline   Rispondi citando il messaggio o parte di esso