2012年8月

RegQueryValueEx用法

HKEY hkey;
LONG retval = RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("SOFTWARE\\xxx"), 0, KEY_ALL_ACCESS, &hkey);
if (retval == ERROR_SUCCESS && hKey) 
{
	DWORD dwSize			=	MAX_PATH;
	DWORD dwType			=	NULL;
	TCHAR data[MAX_PATH]	=	{0};
	DWORD cbData = MAX_PATH;
	BYTE Receive	=	NULL;
	LPDWORD lpReceive = NULL;
	retval = RegQueryValueEx(hkey,   _T("test"),   NULL,   &dwType,   NULL, &cbData);
	retval = RegQueryValueEx(hkey,   _T("test"),   NULL,   &dwType,   (LPBYTE)&Receive, &cbData);
	//if test is a DWORD value
	lpReceive = (LPDWORD)&Receive;
	sprintf(data, "data:%ld", lpReceive);
	MessageBox(data,NULL,NULL);
	RegCloseKey(hkey);
}
else
{	
	TCHAR *szMsg = new TCHAR[MAX_PATH];
	FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, retval, NULL, szMsg, MAX_PATH, NULL);
	MessageBox(szMsg,NULL,NULL);
	delete[] szMsg;
}

打开windows 7休眠报错0xc000007f

C:\Windows\system32>powercfg  -hibernate on
休眠失败,错误如下: 不支持该请求。

下列项目使此系统的休眠操作无法执行。
系统无法创建休眠文件。具体错误代码是 0xc000007f。

输入以上命令准备开启 windows 7休眠,结果在某次系统优化中删除掉了系统盘根目录下的hiberfil.sys,长时间的系统盘的空间小于了内存的大小。我内存8G,系统盘硬盘空间剩余4G,完全不够,精简了系统盘里面的文件,重启动。然后重新执行powercfg -hibernate on成功!系统又多出了“休眠”菜单。系统盘下面也出现了hiberfil.sys文件。

MySQL delete from select

mysql 中delete from select * from tbl后面不能有where条件,如果必须删除有where条件的select出来的结果,可以在外面再包裹一层select。

delete from `jq_posts` where ID in (select ID from 
(
SELECT p.* FROM `jq_posts` p    
inner join `jq_term_relationships` r on p.ID = r.object_id
inner join `jq_term_taxonomy` t  on r.term_taxonomy_id = t.term_taxonomy_id 
and t.taxonomy = 'post_format' 
) t  )

VC6 unicode设置

1、为工程添加UNICODE和_UNICODE预处理选项。

具体步骤:打开[工程]->[设置…]对话框,在C/C++标签对话框的“预处理程序定义”中去除_MBCS,加上_UNICODE,UNICODE。(注意中间用逗号隔开).

在没有定义UNICODE和_UNICODE前,所有函数和类型都默认使用ANSI的版本;在定义了UNICODE和_UNICODE之后,所有的MFC类和Windows API都变成了宽字节版本了。

2、设置程序入口点

因为MFC应用程序有针对Unicode专用的程序入口点,我们要设置entry point。否则就会出现连接错误。

设置entry point的方法是:打开[工程]->[设置…]对话框,在Link页的Output类别的Entry Point里填上wWinMainCRTStartup。