Jeg kender ikke noget til Borlands C++ TRegistry, kun Delphi's, men jeg kender dog noget til C++, og derfor vil jeg lige fortælle at overstående kode laver en memory leak, altså noget hukommelse der ikke bliver frigivet.
Variabler initialiseret af 'new' / 'malloc' (C) skal også slettes igen ved hjælp af 'delete' eller 'free' (C):
void __fastcall TForm1::Button2Click(TObject *Sender)
{
TRegistry *reg = new TRegistry();
reg->RootKey = HKEY_CURRENT_USER;
if(reg->OpenKey("\\\\Software\\\\Microsoft\\\\Notepad", false))
{
int Val = reg->ReadInteger("iMarginBottom");
char Temp[1024];
sprintf(Temp, ">>%d", Val);
MessageBox(0, Temp, "---", MB_OK);
Val++;
reg->WriteInteger("iMarginBottom", Val);
}
delete reg;
}
Jeg ved godt at det kun er ganske få bytes som ikke bliver frigivet, men man kan ligeså godt lave det rigtigt første gang
1101110100010110000101000001