hey everyone im making an gui in C++ which needs to retrieve windows registrys such as windows version etc. however im stuck on some code i was hoping for some help please.

void GetSystemInformation(void)
	float fprocessor;
	HKEY hKey;
	DWORD processorspeed;
	DWORD datasize;

	RegOpenKeyEx(HKEY_LOCAL_MACHINE,"Hardware\\Description\\System\\CentralProcessor\\0",0, KEY_QUERY_VALUE,&hKey);


	if (fprocessor>1000)
	 sprintf(processorspeed,"%3.1f Ghz",fprocessor/1000);
     sprintf(processorspeed,"%3.1f Mhz",fprocessor);

that is my function however i get a error which is error C2664: 'sprintf' : cannot convert parameter 1 from 'DWORD' to 'char *' i cant find what the problem is cause the teacher said sprintf should get it to work and now i cant get in touch with my teacher so all help will be much apperciated. also if anyone knows a site which will help me get more sample code for any registry calls such as windows version,computer name etc can you please let me know thanks

9 Years
Discussion Span
Last Post by dougy83

sprintf expects a char* as the first parameter; it is where it will store the output, as a string of characters.

I don't know what you actually want to do, but if you want to see that it's working, try the following lines (instead of the sprintf lines above):

if (fprocessor>1000)
	 printf("%3.1f Ghz",fprocessor/1000);
     printf("%3.1f Mhz",fprocessor);

This will print the info to the console. If you wanted to return the string from the function, you would have to change the function return type, or parameter list.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.