[推荐] 6droom 的新功能

原创 2007年09月21日 12:14:00
最近新项目要上线,时间真的成了问题,忙里偷闲上来发一篇日志,推荐一下 6droom 的一些新功能,顺便也记下一些开发中的心得 ... 具体的信息可以查看以下页面(http://www.6droom.com/docs/), 其中最实用的功能应该算是我自己弄得一个 FireFox 和 IE6 / IE7 的扩展,这两个小插件可以帮大家更方便的搜索你想要搜索的东西(一个右键就搞定了,嘿嘿),大家不妨试试看,一定会满意的:)其中 IE 的扩展中我用到了一个操作 Windows 注册表的类,贴上来给大家共享一下吧,还不错,简单实用:

CRegKey.h :

#include <windows.h>
#include 
<winreg.h>

using namespace std;

class CRegisterKey
...{
public:
CRegisterKey();
virtual ~CRegisterKey();

public:
LONG Read(LPCTSTR pszKey , BYTE 
*pData , DWORD & dwLength);
LONG Read(LPCTSTR pszKey, 
string &sVal);
LONG Read(LPCTSTR pszKey , DWORD 
& dwVal);
LONG Write(LPCTSTR pszKey , 
const BYTE *pData , DWORD dwLength);
LONG Write(LPCTSTR pszKey , LPCTSTR pszVal);
LONG Write(LPCTSTR pszKey , DWORD dwVal);
void Close();
LONG Open(HKEY hKeyRoot , LPCTSTR pszPath , REGSAM dwAccess 
= KEY_ALL_ACCESS);

protected:
string m_sPath;
HKEY m_hKey;
}
;

CRegKey.cpp

#include "CRegKey.h"

/**///////////////////////////////////////////////////////////////////////
// Construction/Destruction
/**///////////////////////////////////////////////////////////////////////

CRegisterKey::CRegisterKey()
...{
m_hKey 
= NULL;
}


CRegisterKey::
~CRegisterKey()
...{
Close();
}


LONG CRegisterKey::Open(HKEY hKeyRoot, LPCTSTR pszPath , REGSAM dwAccess)
...{
DWORD dw;
m_sPath 
= pszPath;

return RegCreateKeyEx(hKeyRoot , pszPath , 0L , NULL , REG_OPTION_NON_VOLATILE ,
dwAccess , NULL , 
&m_hKey , &dw);
}


void CRegisterKey::Close()
...{
if(m_hKey)
...{
RegCloseKey(m_hKey);
m_hKey 
= NULL;
}

}


LONG CRegisterKey::Write(LPCTSTR pszKey, DWORD dwVal)
...{
ASSERT(m_hKey);
ASSERT(pszKey);

return RegSetValueEx(m_hKey , pszKey , 0L , REG_DWORD , (CONST BYTE *&dwVal ,
sizeof(DWORD));
}


LONG CRegisterKey::Write(LPCTSTR pszKey, LPCTSTR pszVal)
...{
ASSERT(m_hKey);
ASSERT(pszKey);
ASSERT(pszVal);
ASSERT(AfxIsValidAddress(pszVal , strlen(pszVal) , FALSE));

return RegSetValueEx(m_hKey , pszKey , 0L , REG_SZ , (CONST BYTE *) pszVal ,
strlen(pszVal)
+1);
}


LONG CRegisterKey::Write(LPCTSTR pszKey, 
const BYTE *pData, DWORD dwLength)
...{
ASSERT(m_hKey);
ASSERT(pszKey);
ASSERT(pData 
&& dwLength>0);
ASSERT(AfxIsValidAddress(pData , dwLength , FALSE));

return RegSetValueEx(m_hKey , pszKey , 0L , REG_BINARY , pData , dwLength);
}


LONG CRegisterKey::Read(LPCTSTR pszKey, DWORD 
&dwVal)
...{
ASSERT(m_hKey);
ASSERT(pszKey);

DWORD dwType;
DWORD dwSize 
= sizeof(DWORD);
DWORD dwDest;

LONG lRet 
= RegQueryValueEx(m_hKey , pszKey , NULL , &dwType , (LPBYTE) &dwDest , &dwSize);

if(lRet == ERROR_SUCCESS)
dwVal 
= dwDest;

return lRet;
}


LONG CRegisterKey::Read(LPCTSTR pszKey, 
string &sVal)
...{
ASSERT(m_hKey);
ASSERT(pszKey);

DWORD dwType;
DWORD dwSize 
= 512;
char string[512];

LONG lRet 
= RegQueryValueEx(m_hKey , pszKey , NULL , &dwType , (LPBYTE) string , &dwSize);

if(lRet == ERROR_SUCCESS)
sVal 
= string;

return lRet;
}


LONG CRegisterKey::Read(LPCTSTR pszKey, BYTE 
*pData, DWORD &dwLength)
...{
ASSERT(m_hKey);
ASSERT(pszKey);

DWORD dwType;

return RegQueryValueEx(m_hKey , pszKey , NULL , &dwType , pData , &dwLength);
}

然后是 MingW 的生成 Windows 应用的用法:

gcc -c window.c

gcc -o window window.o -mwindows

第一步生成 Link 要用的 window.o 文件,第二步生成 window.exe 应用程序:)

 

6droom 的新功能

具体的信息可以查看以下页面(http://www.6droom.com/docs/), 其中最实用的功能应该算是我自己弄得一个 FireFox 和 IE6 / IE7 的扩展,这两个小插件可以帮大...

Skyline v6新功能展示

  • 2011年09月23日 14:02
  • 10.59MB
  • 下载

Flash CS6 新功能

Adobe® Flash® Professional CS6 软件内含强大的工具集,具有排版精确、版面保真和丰富的动画编辑功能,能帮助您清晰地传达创作构思。 动画软件、多媒体软件 Adobe F...

Docker 1.12新功能探索(6):Service update和Service Scale

docker的Service相关虽然已有介绍,docker新增的特性Service update和service scale,体现了KISS的原则,把复杂的事情简单化,或者简单的事情回归简单,这样极其...

ava SE 6 新特性: Instrumentation 新功能

006 年底,Sun 公司发布了 Java Standard Edition 6(Java SE 6)的最终正式版,代号 Mustang(野马)。跟 Tiger(Java SE 5)相比,Mustan...

微信小程序更新6大新功能,扩大使用场景

微信低调发布推送:《小程序新能力》,轻描淡写的一句话带过原因: 为增强小程序能力,扩大小程序使用场景,现小程序新增以下能力。 实际上,新功能的增加给小程序的推广和普...
  • yylurex
  • yylurex
  • 2017年04月11日 15:07
  • 142

Windows Mobile 6 中为开发人员提供的新功能

摘要 Windows Mobile® 6 开发人员平台版本侧重于几个核心目标:简化行业 (LOB) 应用程序开发和部署、安排构建单个应用程序的任务(该应用程序更易于在 Windows Mobil...

JBoss 系列七十二:jBPM 6 新功能/特性介绍(API 层面)

概述 jBPM 6.0 最终版已与上月底发布,与jBPM 5相比有很大变化,本文从API编程的角度去简单说说jBPM 6,本文设计到内容包括: 2个重要的接口运行状态管理jBPM 服务注入 (C...

SQL 2014新功能介绍系列6 – 缓存池扩展 (Buffer Pool Extension)

SQL Server 2014缓存池扩展 (Buffer Pool Extension)功能可以将缓存池扩展到较快的SSD存储上。为内存比较紧张的系统提供了新的扩展途径。 Buffer Pool 扩...

苹果iOS6新功能剖析 十一项暴强升级!

http://pcedu.pconline.com.cn/ios/1206/2822997_all.html 1苹果iOS6系统 为中国用户优化回顶部   苹果12...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[推荐] 6droom 的新功能
举报原因:
原因补充:

(最多只允许输入30个字)