自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

crybird的C/C++

小鸟小鸟,往前冲

  • 博客(62)
  • 资源 (9)
  • 收藏
  • 关注

原创 从C++和COM角度理解“依赖注入”

从C++和COM角度理解“依赖注入”名词解释:依赖项产生问题:耦合解决方案:注册服务、注入依赖本质:几句话就说清楚一个高大上的概念,一个控制反转技术。所谓的。名词解释:依赖项依赖项(dependency):另一个对象依赖之。比如:class A{public:void fun() {…}};如果另外一个类需要调用A::fun,那么类A就是一个依赖项。某个类B可能会创建一个A对象a,并调用a.fun();class B : public A{public:void method()

2021-03-30 22:15:38 542

原创 Word功能-“多级列表”-用法笔记

【转】http://www.360doc.com/content/19/0912/16/3595160_860609396.shtml以下为个人感想:对于这个功能,觉得非常有用!!!尤其是写标书。我的习惯:先设置多级列表,再正文格式输入标题,最后给标题选样式。以前自己搞定了,设置好了dot格式。后来被拷贝粘贴的冲了,分析了XML格式的,改回去了。但还是没有从根本理解这个功能怎么设置。今天看了链接文档,证实了我的推测,才彻底理解了。=========================

2020-09-10 23:05:36 647

原创 关于全局变量内存泄漏的误报和解决方案

现象:全局变量是个类对象,析构的时候会释放内存。但系统会误报内存泄漏。 原因:报告比析构早,释放的时候已经报告完了。 解决:至少有以下三个解决方案:1.使用#pragma comment(lib, “xxx.lib”) 而不使用设置里的“附加依赖项”。 这个具体细节应该是编译器实现的原因,但至少不误报了。 测试环境vs2017,测试了一个第三方样例,一个自己的Demo,结果一致。 (...

2018-07-04 09:13:35 2791

原创 COM线程模型-套间(新)

严重声明: [原]crybird如有转载请注明出处。 今天偶然看到,我10年前对COM的心得笔记,竟然有不止一人引用,倍感欣慰。于是,把现在的心得加以补充。 本故事纯属虚构,只想以轻松的心情理解COM,别无他意(对各方没有任何不友好、不尊重之意,谢谢理解)。【某外包公司的事故】背景,COM规范太复杂了,按规范编写服务组件和客户端调用,代码量太大,快没人用了。。。第一回~[主线程内...

2018-06-25 23:32:28 596 1

翻译 socket的IO模型(仅有分类)

Linux下socket的五种IO模型1.阻塞I/O2.非阻塞I/O3.I/O多路复用[重点]4.信号驱动I/O5.异步I/O[重点]Windows下socket的五种IO模型1.选择模型 select模型2.异步选择 WSAAsyncSelect模型3.事件选择 WSAEventSelect模型4.重叠I/O模型( 4.1基于事件通知的重叠I/O模型 4.2基于完成例程

2017-12-29 11:26:22 799 1

原创 Oracle ORA-29275:部分多字节字符

原以为是字符转换问题,设置了环境变量 NLS_LANG SIMPLIFIED CHINESE_CHINA.ZHS16GBK(这个值根据实际情况)后来发现,数据库里有半个中文,ADO查询的时候报异常根本处理方法:处理实际数据 (实际项目中不查这个字段了。。。)

2017-11-19 16:06:37 5559

原创 坑爹的ado+oracle;感谢客户方的技术

ADO连接oracle,执行SQL语句的时候,SQL文最后的分号;竟然不能解析。。。十分感谢客户方的技术。。。2017-10-09 00:20:53

2017-10-09 00:21:53 651 1

转载 32位程序如何使用ADO访问64位Oracle数据库[转]

原始链接 http://blog.csdn.net/HXC_HUANG/article/details/71773850

2017-09-27 18:23:40 2681 2

转载 ADO数据库编程详解(C++)----初级入门篇

转帖 http://blog.csdn.net/mingojiang/article/details/8531864

2017-09-20 00:23:40 667

转载 MFC动态库使用boost::thread运行时报错的问题

【转】http://blog.csdn.net/comhaqs/article/details/53884116在MFC动态库中,如果包含有boost::thread的相关文件,可能会导致编译时没问题,运行时报错,报错位于ASSERT(AfxGetThread() == NULL)。百度得知,应该是静态链接boost::thread库时,boost::thread库会修改相关函数指针,具体见网页:h

2017-09-05 13:33:55 575

原创 VC设置断点无效的各种解决方法

我用过的方法: 。。。道听途说: 。。。

2017-04-28 11:56:40 7290

转载 转载 ado用法

ado sqlserver

2017-04-23 20:37:14 252

原创 无法主动调用线程函数怎么办?timer妙用(不太好理解)

场景: 做word插件,用户点击按钮后执行一个命令。 由于不能影响界面,所以要开一个线程,等完事后通知word。

2017-04-19 17:54:33 594

原创 用GDI+放大图片(DrawImage)时的“边界像素”问题

前人发现过类似的:)并已经有了解决方法: http://webserver2.tecgraf.puc-rio.br/~scuri/gdiplus/drawimage_scale_problem.html我的问题升级了:(我需要放大的,是图片的一部分(是个矩形),并且矩形本身带有清晰的对称边框。

2017-02-20 10:39:25 2250

原创 SQLite自定义聚合函数 [类似MAX(field)]

SQLite中使用sqlite3_create_function来注册自定义函数是很常用的。 注册的函数分为两类,普通函数和聚合函数。 自定义聚合函数相关例子很少,网上搜了很多,没有找到合适的资料。 摸索出一个可行的办法,记录于此。 不正确的地方请多指教。

2017-02-04 14:35:47 2056

原创 多个“界面线程”的小坑

由于某些原因,需要两个界面线程。其中一个是主要的界面线程A,另外一个是副界面线程B,弹出对话框,进行一些后台工作,但需要交互。现象:B界面弹出后,A界面就没反应了,偶尔才反应一下。原因:A偶尔反应是因为不断的销毁和创建B。填坑:启动B的代码是CxxDlg dlg;dlg.DoModal();应该改为CxxDlg dlg(CWnd::GetDesktopWindow

2016-06-14 13:52:06 516

原创 fread的误区(以文本格式打开文件)

先看一段代码 void* buffer = malloc(nLength + 2); //maybe wchar, so + 2 memset(buffer, 0, nLength + 2); ret = fread(buffer, 1, nLength, m_pFile); ((char*)buffer)[ret] = 0; ((char*)buffer)[ret +

2016-03-17 15:48:13 3345

原创 关于TLB

一直没有用到,所以没怎么注意。今天用的时候,发现VC不能自动生成COM的TLB文件。在设置里没有找到合适的选项,按直觉可以自动生成才对。网上搜了个办法:VC的文件-打开-打开文件...,选中COM组件(DLL或者EXE),点击打开按钮旁边的下拉框,选打开方式...(资源),打开。打开文件后,是个树状的资源列表,选择TYPELIB,点击右键,选择导出菜

2016-03-11 10:57:58 893

转载 Levenshtein距离,Edit Distance

最近用到这个东西,记录一下比较重要的资料地址:这篇博文是比较详尽的,从概念到原理:算法之美——求解 字符串间最短距离(动态规划)http://blog.csdn.net/huaweidong2011/article/details/7727482另外还有百度百科和维基百科,百度的通俗易懂,维基的有深度其他还有很多,不能一一列举了。

2015-12-16 11:29:57 433

转载 换一个高度看自绘 - windows自绘控件总结

转自 http://blog.csdn.net/blz_wowar/article/details/2046886相关 http://msdn.microsoft.com/zh-cn/library/ms364048%28VS.80%29.aspx

2014-08-15 08:11:05 1156

原创 关于Word中InsertXML的说明(Word ML)

【前言】从Word2007刚出来的时候,就发现这个问题了,但是修改的不是很细致,也不深入。今天优化代码的时候(2013年11月),又研究了下这个问题,在我所查找到的资料中,只有这一个有参考性的帖子。【问题】wrod通过InsertXML的方法插入Word ML的时候,word2003和2007-2013的版本效果不一样。对于一个简单的Word ML来说,2007-2013的版本比w

2013-11-11 13:24:18 2370

转载 UpdateLayeredWindow和SetLayeredWindowAttributes (我记得转过的啊啊啊啊啊)

http://blog.csdn.net/weiwangchao_/article/details/6959024

2013-09-30 13:06:16 1167

转载 关于SAFEARRAY的,转载了篇文章,比较全

有个问题,64位COM组件调用32位COM组件(进程外)的时候:32位组件里引入_IDTExtensibility2接口,64调用的时候失败;如果不用引入的方法,而把接口函数写到IDL里,则调用成功。比较奇怪。(关键是接口函数有SAFEARRAY**类型的参数,让系统默认转就失败。返回的错误时加载DLL模块失败,其实是代理存根调用有异常,可能转SAFEARRAY的时候有

2013-06-27 15:25:34 12655

原创 CEdit 文本垂直居中(单行解决方案)

关于这个问题,网上流传的都是多行模仿,最后有附件,由于怕细节不完美,决定探究下派生CEdit方法,可以响应WM_NCCALCSIZE消息,关键代码如下:void CVCenterEdit::OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpncsp){ CEdit::OnNcCalcSize(bCalcValidRect

2013-05-22 11:14:02 9157 4

转载 CHtmlView下的IE版本

WebBrowser与IE的关系,如何设置WebBrowser工作在IE9模式下?修改注册表There are two different sets of keys for 32 bit and 64 bit applications.32 bit: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\Fea

2013-04-28 13:21:50 2348

原创 SQL关于空串的判断与比较

IS NULL    表示字段内容不存在,类似于空指针nullptr;NULL不能和=一起使用,只能和IS一起使用IS NOT NULL    表示字段内容存在,字段的内容可以是空串和非空串(即也包含"") =''    表示字段内容是空串,类似""(注意,nullptr即不是空串,也不是非空串)!=''    表示字段内容非空串,(注意,nullptr即不是空串,也不是非空串)

2013-04-25 08:45:52 2711

原创 一个比较特殊的自绘按钮

美工设计了一排特殊的按钮,对话框有背景图,按钮是不规则的,还要求方形区域;最特别的是按钮之间用一条渐近线分割,哪个按钮被捕获了(悬停或者按下),左右两条线就属于这个按钮。也就是说相邻按钮有重叠的地方,属于谁不一定。如果动态移动按钮,就没啥意思了。想了几个注意的地方:1.对话框上画虚拟按钮(没有,对话框监视鼠标位置,画图),这样监控的地方比较多,代码写的多,懒得做

2013-04-25 08:30:03 1026

原创 剖析C++11中STL库thread类的一小段代码(MS版本)

//剖析C++11中STL库thread类的一小段代码(MS版本)/* 写一段代码,使用thread构造函数的时候,提示有9个构造函数,但明明白白写的有3个, 但有一段奇怪的宏,也就是下面代码展开后,实现了6个构造函数*/#define _THREAD_CONS( \ TEMPLATE_LIST, PADDING_LIST, LIST, COMMA, X1, X2, X3, X4)

2013-04-24 13:22:57 2728 7

原创 如何获取网卡MAC地址(或相关信息)

好多方法,比较全的是《xxxx的四种方法》这里记录一个最简单的方法,留着备用:#include #pragma comment(lib,"Iphlpapi.lib") //需要添加Iphlpapi.lib库#include void GetMacsInfo(std::vector& vMac){ DWORD dwSize = 0; ULONG nRet = GetAdapte

2013-04-12 13:46:49 847

原创 终于解决body元素居中问题(xslt+xml->html,终极解决方案)

对html不熟,所以整个过程比较复杂,目的是将一个宽800的div居中显示,但html是xslt+xml产生的。【1】设置属性开始对body属性各种设置,IE和FF都很好,但VC里的CHtmlView控件显示不能居中。(表现上看,貌似使用的是IE6引擎,以前碰到都是去修改网页和脚本,没试过用程序设置)。后来查到是自己理解错了,不是对body设置,body就是浏览器宽度,应该对div

2013-04-01 12:47:38 2005

转载 Margin还是Padding?这是个问题。【转】

一直比较困惑,这篇写的不错,转之。http://www.hicss.net/use-margin-or-padding/用margin还是用padding这个问题是每个学习CSS进阶时的必经之路。CSS边距属性定义元素周围的空间。通过使用单独的属性,可以对上、右、下、左的外边距进行设置。也可以使用简写的外边距属性同时改变所有的外边距。——W3School边界(mar

2013-03-29 12:33:28 767

转载 转载 Windows8 游戏开发教程-开篇 主要是知识点和工具的列举和对比

来自 Windows8 游戏开发教程-开篇准备开始写一个win8游戏开发教程了,现在这里整理一下思路。需要在开篇解释的问题就有一大堆了,先尝试一个个把他们写下来。 1.阅读这个教程需要什么样的基础?2.这个教程能带来一个怎样的DEMO,结束之后能开发什么游戏?3.这个教程覆盖哪些知识,使用什么语言和工具开发? 问题1: 首先是编码能力,这不是一本程序教材

2013-01-08 08:41:14 923

转载 转载标记一个win8开发系列的入口

来自 谈一谈 Windows 8 的软件开发架构关于windows8的架构,这张图流传的相当广泛但是有多少人明白这其中的奥秘,我特意做了一些实验,来发现这到底是怎么一会儿事儿。 首先来看看win32 时代我们开发一个应用的过程一直都是折腾类库来开发的,dotnet类库比win32类库进了一步,做了一些更深的封装。虽然dotnet更先进,但c++的

2013-01-08 08:19:55 695

原创 64位word插件(ribbon界面)开发的几个问题

1.目标平台选x64(废话)2.64位COM组件可以调用32位COM组件,但只能调用进程外组件(.exe),所以要各种包装。(32调64的据说行,没测试)http://www.cnblogs.com/mazhenyu/archive/2007/06/28/798710.html3.IDispatch接口的入口必须通过插件接口,不能是_IDTExtensibility2,

2012-12-26 14:37:46 1729 1

原创 安装win8的坎坷经历

第一天surface上使用了一下win8,觉得不错,就打算PC上装一个企业版的。下载3-4G的iso还算顺利,网络这点真好:)回家一升级,win7旗舰版不能升级到win8企业版。。。{亮点啊}装双系统没多大必要,于是决定刻盘。第二天很快同事把盘刻好了,可以安装了,yee。。。but。。。怎么就起不来呢?重启进系统,右键点击光盘,打开,看一看光盘里究竟是神马东东。。。

2012-11-03 13:00:18 973

原创 当心Invoke埋下的雷

【标签】dispatch error; invoke error; COM; 连接点; VTS_VARIANT;【报错提示】VS2010-0xC015000F 正在被停用的激活上下文不是最近激活的VS2012-0x00000001 处有未经处理的异常(在 a.exe 中): 0xC0000005: 执行位置 0x00000001 时发生访问冲突【应用场景】主程序

2012-09-21 09:40:18 4117

原创 如何遍历Word的页眉和页脚的域

'关键代码如下Sub 宏1() For Each sec In ActiveDocument.Sections MsgBox (sec.Headers(wdHeaderFooterFirstPage).Range.Text) MsgBox (sec.Headers(wdHeaderFooterPrimary).Range.Text)

2012-08-28 14:38:57 2583

原创 window窗口闪烁小结

首先,这两天的论坛上,很多人又提“防闪烁”的问题;然后是读了这位浅墨老兄的这篇博客,有感而发。(这位老兄貌似也是转发的,浅墨兄文笔很好,超赞)http://blog.csdn.net/zhmxy555/article/details/7436397闪烁的问题有时候很难,涉及的东西太多;有时候很简单,处理WM_ERASEBKGND消息即可;有时候需要双缓冲;有时候还要改窗口样式。。。

2012-07-31 10:34:45 5110 1

原创 推箱子基础代码(win32版)

今天在网上看到一个网友的《超级玛丽》的制作,一时手痒,决定也做个以前的经典小游戏。由于时间有限,也没做过游戏,就选择了自己比较喜欢的,也比较简单的《推箱子》。(遥想当年上自习的时候,借同学的文曲星玩推箱子,同学都跑过来问我这关怎么过的;大二的时候他出国留学了,再也没见过,想起来十年有余)。资源中有源码和最基础的东西,不能做为一个软件,只能做一个demo。留以为念。源码在

2012-07-22 00:08:26 2431 1

原创 IE中js调用脚本实现打印预览(按钮本身不打印)

先上代码(声明大部分代码来自网络) print demo .noprint { display : none; } function doPrintSetup(){ //打印设置 printWB.ExecWB(8,1) } function doPrintPreview(){ //打印预览 printWB.ExecW

2012-05-10 07:47:53 14982 3

推箱子源码,附exe,两个地图

VS10推箱子源码,自己去扩充地图,有编译好的Release预览。

2012-08-01

推箱子源码(半成品)

提供了推箱子的源码,只有一关,内置地图,包含推箱子的基本过程而已。

2012-07-22

Duilib在MFC、WTL中的使用方法(Demo)

Duilib在MFC、WTL中的使用方法(Demo) 很粗糙,备份用法而已

2012-02-07

去掉WebBrowser的边框和滚动条

老问题,新解法:关于去掉WebBrowser的边框和滚动条 连接点+SetUIHander方法 关键代码

2011-08-30

wpf换肤例子Gridplan

1.动态资源字典方法 2.包括背景色、图片(bmp/png)、字符串(等于切换多语言) 3.前两种皮肤是程序内资源,第三种是普通文件包,更新皮肤可以不重新生成 4.例子简陋,适用于新新手

2011-08-05

vs2010插件小例子,部分源码

1.vs2010插件小例子,关键源码 2.功能:选中文本在宽字符、MBCS、_T("")之间切换 等号交换、等号对其 3.自己做会有乐趣滴

2011-07-28

用VS2008+ATL开发Gif的ActiveX控件

ATL开发ActiveX的步骤MSDN里就有 网上显示gif动画的资料也不少 综合了一下,这只是个毛坯,真正用的时候再完成吧 内容: 一个word文档,描述开发步骤 一个demo,包含组件和测试工程

2009-04-04

简单的三态树,VC++源码

源码非常简单,简单的三态树,xp风格。 派生于CTreeCtrl 只添加了几个函数,使用方便

2009-02-05

简单的图片显示控件源码

简单的图片显示控件源码,使用GDI+,功能有限,方便使用。

2008-12-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除