 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Daniel Invitado
|
Publicado: Sab 02 Nov, 2002 7:48 pm Asunto: __int64 |
|
|
Hola Amigos
Tengo el siguiente problema y quizas alguien me puden
dar una mano.
En un __int64 tengo un dato x y debo guardar este dato
en el registro de Windows.
Yo creo la nueva entrada y al querer guardar el dato
no guardo lo correcto.
Para hacer esto estoy usando este código:
void __fastcall TForm1::FlatSpeedButton1Click(TObject *Sender)
{
char szID[512];
int res;
HKEY Clave;
DWORD Dispo
__int64 ID =0;
LeerDriveID (); //Interrogo el Hardware del Drive
ID = Dato(); //Leo el ID del Drive
Panel1-> Caption= ID; //Lo muestro
//Lo guardo en el registro
res = RegCreateKeyEx(HKEY_CURRENT_USER,
"Software\\Sys42\\Key",0,
0,REG_OPTION_VOLATILE, KEY_ALL_ACCESS,0,
&Clave, &Dispo);
//en esta linea decodificar el error si existe
sprintf(szID,"%d",ID);
RegSetValueEx(Clave, "Log",0,REG_SZ,szID, sizeof szID);
RegCloseKey(Clave);
}
Supongo que mi error está en el uso que le estoy dando a
sprintf y la forma en que quiero que trate el __int64
ya que todo lo demás funciona bien excepto guardar en el
registro.
Desde ya GRACIAS POR SU TIEMPO!!!  |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Sab 02 Nov, 2002 11:15 pm Asunto: |
|
|
Prueba en el sprintf con %Ld en vez de %d:
sprintf( szID, "%Ld", ID);
'L' es un modificador que usado antes de 'd' indica que es un entero de 64 bits. Si no lo pones y el numero que contiene ID es pequeño no hay problema, pero si el numero es suficientemente grande no te dará el valor correcto. |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|