博文
C++]用VC++来设置获得注册表的键值(问题解决)(2007-07-13 14:13:00)
摘要:
下面这个是基于MFC的基本对话写的。。 演示设置注册表的3中类型的值和获得注册表的3中类型的值。。 分别用RegSetValueEx()来设置,RegQueryValueEx()函数来获得。
void CUserRegDlg::OnOK() { // TODO: Add extra validation here CString str = "hello reg"; DWORD regd = 100; BYTE bValues[] = { 0x11, 0x12, 0x55 };
BYTE Vals[100]; DWORD lenIt = 100; HKEY hk;
// 打开注册表如果没有则创建, 返回注册表句柄于hk if ( ::RegCreateKey( HKEY_LOCAL_MACHINE, "SOFTWARE\\Test\\", &hk ) == ERROR_SUCCESS ) { AfxMessageBox( "打开注册表" ); }
// 保存参数到注册表 try { /* RegSetValueEx( 根键句柄, 值项名称, 保留参数补0即可, 数据类型, 所设置的数据, 数据长度 ) 用来设置注册表键特定的值,如果数据不存在则创建它 */ /* 保存字符值到注册表 */ if ( ::RegSetValueEx( hk, "Server", 0, REG_SZ, (LPBYTE)(LPCSTR)str, str.GetLength( ) +1 ) == ERROR_SUCCESS ) { AfxMessageBox( "字符值参数保存成功" ); } /* 保存双字节到注册表 */ if ( ::RegSetValueEx(......
[WIN编程]WINDOWS数据类型的转换大全(转)(2007-07-13 14:11:00)
摘要:WINDOWS数据类型的转换 一、其它数据类型转换为字符串短整型(int)itoa(i,temp,10);//将i转换为字符串放入temp中,最后一个数字表示十进制itoa(i,temp,2); //按二进制方式转换 长整型(long)ltoa(l,temp,10); 浮点数(float,double)用fcvt可以完成转换,这是MSDN中的例子:int decimal, sign; char *buffer; double source = 3.1415926535; buffer = _fcvt( source, 7, &decimal, &sign ); 运行结果:source: 3.1415926535 buffer: '31415927' decimal: 1 sign: 0decimal表示小数点的位置,sign表示符号:0为正数,1为负数 CString变量str = "2008北京奥运";buf = (LPSTR)(LPCTSTR)str; BSTR变量BSTR bstrValue = ::SysAllocString(L"程序员"); char * buf = _com_util::ConvertBSTRToString(bstrValue); SysFreeString(bstrValue); AfxMessageBox(buf); delete(buf); CComBSTR变量CComBSTR bstrVar("test"); char *buf = _com_util::ConvertBSTRToString(bstrVar.m_str); AfxMessageBox(buf); delete(buf); _bstr_t变量_bstr_t类型是对BSTR的封装,因为已经重载了=操作符,所以很容易使用_bstr_t bstrVar("test"); const char *buf = bstrVar;///不要修改buf中的内容 AfxMessageBox(buf); 通用方法(针对非COM数据类型)用sprintf完成转换char buffer[200];char c = '1';int i = 35;long j = 1000;float f = 1.7320534f;sprintf( buffer, "%c",c);spr......
