C++
tszhao
这个作者很懒,什么都没留下…
展开
-
VC创建多级目录
BOOL Utility::ForceCreateDirectory(wstring strDir){ BOOL bRet = FALSE; //确保以"\"结尾,以创建最后一个目录 if(strDir.find_last_of(L"\\") != strDir.原创 2011-09-01 08:30:02 · 1155 阅读 · 1 评论 -
C++和JS的交互1 - 在C++中调用JS函数
1, ::LoadLibrary(_T("OLEACC.DLL"));2,从dll中取得ObjectFromLresult函数的地址3,向需要的ie窗口用SendMessageTimeout发送WM_HTML_GETOBJECT4,通过函数指针取得IID_IHTMLDocument对象5,在取得IHTMLWindow2对象转载 2012-02-23 10:30:41 · 1022 阅读 · 1 评论 -
C++和JS的交互2 - Invoke
最近关于vc++里面通过IDispatch的Invoke来实现和js的交互做点了tp,并且对以前不了解的“直接读取js变量值”和“传递多个参数”的部分重新实现了下。1,调用js的函数,并传递多个参数CComQIPtr pDoc = m_browser.get_Document(); if (pDoc) { CComQIPtr spDis转载 2012-02-23 10:32:31 · 1619 阅读 · 0 评论 -
Vista/Win7上WM_DROPFILES无法响应的解决办法
在Vista和Win7上,由于UAC的限制,WM_DROPFILES只能由权限较低的APP拖拽到权限较高的APP,反之如果从权限较高的APP拖拽到低权限的APP上,WM_DROPFILES不会被发送到低权限的APP消息队列。所以,WM_DROPFILES会有时候变得不能响应。解决的办法,使用ChangeWindowMessageFilter注册WM_DROPFILES这个MEESS转载 2012-02-29 09:34:42 · 1042 阅读 · 0 评论 -
用IActiveDesktop改变桌面背景
1. 使用IActiveDesktop接口,需要包含以下头文件:#include #include 注意,如果仅仅包含shlobj.h是不行的,会提示找不到IActiveDesktop定义。具体用该接口改变桌面背景的方法可参见 http://www.qingfengju.com/default.asp?tag=Windows原创 2012-03-01 21:47:02 · 338 阅读 · 0 评论 -
得到本地IP
void GetIP(){ char host_name[MAX_PATH] = {0}; int ret = gethostname(host_name, sizeof(host_name)); if(ret != 0) { return; } hostent *host = NULL; host = gethostbyname(host_name); if(NULL =原创 2012-03-06 14:57:35 · 197 阅读 · 0 评论 -
得到外网IP
/************************************************************************/ /* 函数说明:获取当前外网IP地址 /* 参 数:无 /* 返转载 2012-03-07 14:56:47 · 181 阅读 · 0 评论 -
Ring3与Ring0通信方法若干
本人在[(原创)应用程序与驱动通信的若干方式]文章中阐述了,上下层通信的技术实现部分,但没有结合应用,下面的文章就具体应用给大家展示了使用方法,希望能够大家一些启发。 Ring3与Ring0同步是很有用的手段,在此做一个简要的整理,希望对开发这方面程序的朋友有帮助,好了,开始吧。 1 同步的策略 初写驱动的朋友都知道,通过Dev转载 2012-03-10 17:16:05 · 2098 阅读 · 0 评论 -
判断文件的大小
ULONGLONG ullMaxFileSize = 10*1024; WIN32_FIND_DATA data; HANDLE hFile = FindFirstFile(strPathName, &data); if(hFile != INVALID_HANDLE_VALUE) { ULONGLONG fileSize = (data.nFileSizeHigh*MAXDWORD+原创 2012-03-31 14:07:06 · 240 阅读 · 0 评论 -
程序中打开文件或目录
//打开文件 CString strFileName = _T("d:\\test\\test.exe"); ShellExecute(NULL, _T("open"), strFileName, NULL, NULL, SW_SHOWNORMAL); //打开文件所在的目录 CString strCmd = _T("Explorer /select, ") + strFileName;原创 2012-03-23 14:53:12 · 297 阅读 · 0 评论 -
Window下拖放操作Drag & Drop 全解析
一、基本概念拖放,是指用鼠标拖动的方法,在不同程序的窗口之间、同一个程序的不同窗口之间或同一程序同一窗口的不同控件之间,进行移动、复制和粘贴等操作的技术。拖放操作是在操作系统的帮助下完成的。被拖动的对象首先向操作系统注册它使用的数据格式,并按指定的数据格式提供数据,拖放操作结束时,接收拖放的窗口按指定的数据格式提取有关数据,并根据提取的数据生成相应的对象。二、两种拖放方式拖放有两种类型转载 2012-04-19 18:13:49 · 858 阅读 · 0 评论 -
从exe中读取版本信息
HRESULT CAboutDlg::GetVersion(__out CString& strVersion){ strVersion = _T("版本未知"); TCHAR szFileName[MAX_PATH] = {0}; GetModuleFileName(NULL, szFileName, MAX_PATH); DWORD dwSize = GetFileVersion原创 2012-05-24 14:55:16 · 396 阅读 · 0 评论 -
ICU进阶:使用ICU中的Resource Bundle技术
简介: 一个国际化软件的本地化成功与否,通常决定于是否能比较容易的修改影响用户的数据。如何处理这些和用户语言或者习惯相关的数据是软件国际化的关键,开发人员需要一种能够将程序代码和国际化数据分离,程序员只关注代码本身,翻译人员不需要了解程序的机制。Resource Bundle 就是这样的一种技术,在本篇文章,将继续深入介绍 ICU4C,介绍 Resource Bundle 技术的相关应用。转载 2012-07-04 17:49:29 · 521 阅读 · 0 评论 -
C++ 与 JS 交互编程
http://www.codeproject.com/Articles/4805/Advanced-customization-of-WebBrowser-Control-in-Dihttp://www.codeproject.com/Articles/2352/JavaScript-call-from-Chttp://www.vckbase.com/index.php/wv/1204原创 2012-06-19 15:27:22 · 672 阅读 · 0 评论 -
log4cplus学习笔记(二)
log4cplus在很多方面做的都很出色,但是使用过程有些地方感觉不爽。在继续吹捧之前我先把不爽之处稍微提一提,然后继续介绍关于线程和套接字的知识。### 一些可以改进之处 ###1. 用户自定义LogLevel的实现机制不够开放在第五篇中曾经介绍过如何实现用户自行定义LogLevel,为了实现比较理想的效果,甚至还需要改log4cplus的源代码。:(2. 生成Logge转载 2012-06-29 16:51:18 · 618 阅读 · 0 评论 -
log4cplus学习笔记(一)
(一)log4cplus是C++编写的开源的日志系统,功能非常全面,用到自己开发的工程中会比较专业的,:),本文介绍了log4cplus基本概念,以及如何安装,配置。### 简介 ###log4cplus是C++编写的开源的日志系统,前身是java编写的log4j系统.受Apache Software License保护。作者是Tad E. Smith。log4cplus具有线程安全、转载 2012-06-29 16:48:51 · 829 阅读 · 0 评论 -
linux设置DNS
[问题描述 ]Linux下如果ping一个域名,出现如下状况:#ping www.taobao.comping: unknown host www.taobao.com 那是因为系统没有设置DNS的缘故。在此场景下,任何通过域名的操作都会有问题。 [解决办法 ]1、查看DNS设置#cat /etc/resolv.con原创 2012-08-05 11:41:27 · 263 阅读 · 0 评论 -
VS2008 如何实现远程调试
一、关键词说明:目标机:被调试程序所运行的机器;调试机:运行VS2008调试代码的机器;二、远程调试环境搭建步骤如下:1. 在目标机上安装VS2008远程调试器; 在VS2008安装盘中Remote Debugger 目录下, 有x64和x86两个版本的rdbgsetup.exe,选择和目标机相匹配的版本。(或到vs2008安装目录下的./deb转载 2012-11-20 14:52:18 · 1862 阅读 · 0 评论 -
如何在windows下编译Chrome源代码
序·关于Google ChromeGoogle Chrome 是Google 于2008年发布的一款开源的浏览器,它采用了许多开源的组件和工具,比如它的浏览器引擎采用的是开源的浏览器引擎WebKit。如果想获取Chrome的代码,可使用SVN从Google服务器上checkout,其SVN地址是src.chromium.org/svn,这是一个总目录,包含有 Chrome、Gear转载 2012-02-23 13:17:29 · 326 阅读 · 0 评论 -
JS调用C++
1.注册C++函数。//注册回调函数宏//根据不同需要支持注册两个函数原型,注意CONNECT_JS_CALL_SIMPLE_HANDLER中注册的函数//需要提前和HTML调用协调好,参数必须都为字符,负责会引起未知问题#define CONNECT_JS_CALL_HANDLER(name, func, pContext) do \{\ if (!CBKCallBackFu转载 2012-02-23 12:47:11 · 1643 阅读 · 0 评论 -
VC2010中编译Sqlite3为静态库并带加密功能的方法
一、用开源的wxsqlite3(我用的版本是3.2.1.3)1、到SQLite官网http://www.sqlite.org/下载sqlite-amalgamation-XXXXXX.zip(我下的版本是3.78),它已经包含了所有的源文件,也不需要另外的辅助工具了,解压到某一目录,如Sqlite3。2、在VS2010里新建一个空工程,把所有文件放入工程内;3、到http://转载 2012-02-13 10:52:03 · 1994 阅读 · 1 评论 -
VC实现插件的开发
要实现Add-in Object 有三种方法,一种是利用ATL COM Wizard中的ATL对象 Add-in Object来实现,另一种是利用DevStudio Add-in Wizard来实现,第三种就是手工写所有的代码,如果手工写,一定要记住实现IDSAddIn接口,这样原创 2011-09-02 12:24:46 · 2187 阅读 · 2 评论 -
用C++实现的一种插件体系结构-----概述 .
本文讨论一种简单却有效的插件体系结构,它使用C++,动态链接库,基于面向对象编程的思想。首先来看一下使用插件机制能给我们带来哪些方面的好处,从而在适当时候合理的选择使用。1, 增强代码的透明度与一致性:因为插件通常会封装第三方类库或是其他人编写的代码,需要清晰地定义出接口转载 2011-09-09 13:44:23 · 203 阅读 · 0 评论 -
提取word等复合文档的附加信息
参阅:http://support.microsoft.com/kb/186898 或者 http://www.vckbase.com/document/listdoc.asp?mclsid=17&sclsid=1713 http://blogs.msdn原创 2011-08-19 09:35:00 · 235 阅读 · 0 评论 -
VS2005下如何安装WTL
Windows Template Library - WTL的安装指南满地都是,而且源程序也附带了安装说明,似乎没有必要再多写一个。但是,事情并没有想象的那么简单,本人有过将近4年的C++开发经验,在两年前刚转入C#,有很长时间没碰C++了(最后使用的工具是VC++6.0)。今天原创 2011-08-23 09:16:35 · 176 阅读 · 0 评论 -
VS2010 unable to compile simplist MFC dialog app on XP SP3 system
It seems simple enough, does anyone else have this problem? You could try it in 10 minutes.My OS is XP SP3VS2010 10.0.30319.1 RTMRelSt转载 2011-08-29 15:41:31 · 1241 阅读 · 0 评论 -
使用DWM实现Aero Glass效果
从Windows Vista开始,Aero Glass效果被应用在了Home Premium以上的系统中(Home Basic不具有该效果)。这种效果是由DWM(Desktop Window Manager)来控制的。对于一般的程序,缺省将在窗口边框应用这种效果。但如果我们想要更转载 2011-10-18 12:33:00 · 936 阅读 · 0 评论 -
Makefile - 从无到有
Makefile这玩意在上学时就应该学,可是一直沉浸于IDE的诱惑,所谓“死于安乐”,直到现在一把年纪才开始接触这种基础东西。创建C程序先写个c程序,保存在main.c里:view plain////////////////// // file: main.c ////////////////// #include int main()转载 2011-10-20 12:25:50 · 231 阅读 · 0 评论 -
VC++开发BHO插件---定制你的浏览器
正文在Windows操作系统上,我们最常见的浏览器有两种:文件浏览器(exploer.exe,应用于文件系统)和Internet浏览器(iexplore.exe,应用于互联网资源)。由于这两个浏览器功能强大,而且又与Windows操作系统捆绑销售,最终也就成为了浏览器的标准。但有时候,为了给浏览器加入一些新的特性,我们往往会重新设计一个自己的浏览器。新的浏览器模仿标准浏览器的大部分功能,同时加转载 2011-10-23 13:32:12 · 299 阅读 · 0 评论 -
使用 Windows Vista 的凭据提供程序创造自定义的登录体验
Windows Vista 在平台集成方面为开发人员提供了许多新的机会。新的凭据提供程序模型是变动最大的方面之一,由于它的出现,实现操作系统支持的新用户身份验证方案变得容易了许多。它已取代了 GINA(图形标识与身份验证)模型,而直言不讳地说,后者一向因为开发人员难以理解和实现以及昂贵的 Microsoft 支持费用而广为诟病。那么 Windows® 登录插件接口的一个变化竟会如此令人兴奋,其转载 2011-11-07 08:35:15 · 736 阅读 · 0 评论 -
在RichEdit控件中插入OLE对象(ActiveX控件)
有时候,我们需要在一个容器中插入各种不同的对象,比如,QQ聊天对话框里可以插入各种静态和动态的图片,甚至还可以插入flash文件,这些都是通过OLE技术来实现的。OLE技术是基于COM的,而COM又是非常复杂的东西,想要学习COM得花很多的时间,《COM技术内幕》,《COM原理和应用》,《INSIDE OLE 2》都是非常好的学习COM和OLE的书,但要把这些书啃完,弄懂,几个月甚至半年都过去了。转载 2012-01-07 21:58:07 · 369 阅读 · 0 评论 -
VC里打开网页
ShellExecute函数原型及参数含义如下: ShellExecute( HWND hwnd, //父窗口句柄 (如:NULL,Handle等)LPCSTR lpOperation, //操作类型 (如:"open")*要加英文双引号LPCSTR lpFile, //要进行操作的文件或路径 LPCSTR lpParameters, //当lpOperat转载 2012-01-07 22:12:15 · 1445 阅读 · 1 评论 -
C/C++ 实现文件透明加解密
// 修复涉及后视列表的Win2K兼容性// Fixes Win2K compatibility regarding lookaside lists.//#ifndef _WIN2K_COMPAT_SLIST_USAGE // Add content(增加内容)#define _WIN2K_COMPAT_SLIST_USAGE #endif#include "ntifs.h"转载 2012-01-13 08:30:13 · 1362 阅读 · 1 评论 -
任务栏图标闪动
if (::GetForegroundWindow() != GetHWND()){FLASHWINFO fi = { 0 };fi.cbSize = sizeof (FLASHWINFO);fi.hwnd = GetHWND();fi.dwFlags = FLASHW_TRAY | FLASHW_TIMER;fi.uCount = 3;fi.dwTimeout = 3原创 2012-01-12 09:10:18 · 601 阅读 · 0 评论 -
GDI+与IStream显示图片
将图片以流的方式显示到控件当中,代码如下:void DrawPic(HDC hDC, LPCTSTR lpFileName){ // // 将图片通过流方式显示在DC中 // HANDLE hFile = CreateFile( //打开文件 lpFileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXIST原创 2012-01-29 16:30:35 · 923 阅读 · 0 评论 -
VC&MFC比较好的开源项目
原文:http://www.codeproject.com/Articles/19218/Some-of-the-Best-Open-Source-Project-s-in-VC-MFC转载 2012-01-30 12:55:52 · 412 阅读 · 0 评论 -
VC++&MFC一些比较好的开源项目
BackgroundCodeProject has the best source code repository for VC++ developers. But another site Sourceforge.net also has some of the best quality projects available for VC++. Here I list some of t转载 2012-01-30 12:54:28 · 87 阅读 · 0 评论 -
加密版 SQLite 3 - wxSQLite3
SQLite 3 开源版不带加密功能,对于一个保存在本地的数据库来说没有加密功能让人难以接受,只要用记事本打开数据库就可以看到数据库内保存的数据,对安全多多少少有一点影响。有一个办法是把内容加密后保存到数据库中,但遇到类似 like,或字段内容与字段内容比较这就不行了。治本的办法是让 SQLite 原生的支持加密。好在 SQLite 的作者预留了加密解密的相关接口,许多爱好者也自己修改源版添加加密转载 2012-02-10 15:06:20 · 855 阅读 · 0 评论 -
ATL创建HTML Control右键菜单处理
1. 禁用右键菜单:把OnCreate方法修改如下。LRESULT OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/){ CAxWindow wnd(m_hWnd); wnd.ModifyStyle(0, WS_HSCROLL | WS_VSCROLL); HRESULT原创 2013-01-19 15:46:20 · 467 阅读 · 0 评论