Hola Angel.
No parece que estes haciendo nada mal , acabo de probar con código equivalente y muestra el valor de modo correcto:
Código:
#include <registry.hpp> // ( Revisa esto )
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TRegistry *reg = new TRegistry(KEY_READ); //[*]
String cAux;
__try {
reg->RootKey = HKEY_LOCAL_MACHINE;
if (reg->OpenKeyReadOnly("SOFTWARE\\Firebird Project\\Firebird Server\\Instances")) {
cAux = reg->ReadString("DefaultInstance");
reg->CloseKey();
ShowMessage(cAux);
}
}
__finally {
delete (reg);
}
}
[*] Es costumbre, funciona igualmente como está en tu código.
Para que salgas de todad duda, también podes hacer la prueba desde consola:
Código:
#include<iostream>
#include<windows.h>
#include<registry.hpp>
int main()
{
TRegistry *reg = new TRegistry(KEY_READ);
String cAux;
__try {
reg->RootKey = HKEY_LOCAL_MACHINE;
if (reg->OpenKeyReadOnly("SOFTWARE\\Firebird Project\\Firebird Server\\Instances")) {
cAux = reg->ReadString("DefaultInstance");
reg->CloseKey();
std::cout << cAux;
}
}
__finally {
delete(reg);
}
std::cin.get();
}
Saludos