Tregistry borland c++ 6.0 entp

Tags:    c++

Hej jeg er ny her (Og ny bruger af c++ bør jeg nok tilføje)

Jeg vil gerne ændre en win registry value (dword) når brugeren trykker på en knap.

Borland har en Tregistry class som jeg havde tænkt mig at bruge.

Håber der er nogern der kan hjælpe
BTW - hvis du/i gidder at gi' en kort gennem gang af koden ville det være rart.

Venlig Hilsen Kasper

[Redigeret d. 23/09-04 12:09:27 af Kasper]



5 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Måske noget i stil med:

Fold kodeboks ind/udKode 


OpenKey åbner nøglen "\\\\Software\\\\Microsoft\\\\Notepad", false betyder her at den ikke skal oprette nøglen hvis den ikke findes.

ReadInteger læser værden iMarginBottom over i Val.
Denne udskrives på en dialogbox så vi kan se hvad der sker.
Der lægges en til Val og denne skrives tilbage.



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):
Fold kodeboks ind/udKode 


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 :D

1101110100010110000101000001



Du har selvfølgelig ret, man skal delete reg'en. Det var lettere hvis man kunne lave en TRegistry på stakken.

Måske skal man også close'e key'en, hvis man kunne åbne den:

reg->CloseKey();



Du har selvfølgelig ret, man skal delete reg'en. Det var lettere hvis man kunne lave en TRegistry på stakken.

Nu har jeg ikke selv Borland så jeg kan ikke selv teste men hvorfor kan man ikke oprette et TRegistry objekt på stakken ?



Nu har jeg ikke selv Borland så jeg kan ikke selv teste men hvorfor kan man ikke oprette et TRegistry objekt på stakken ?


Fordi VCL objecter skal oprettes med new; hvis jeg laver:
TRegistry reg;

Får jeg følgende besked:
[C++ Error] Unit1.cpp(58): E2459 VCL style classes must be constructed using operator new

Jeg ved ikke hvorfor, men det måske noget at gøre med at TRegistry og andre VCL class'er er implementerede i pascal/delphi.



t