<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[crybird的C/C++]]></title><description><![CDATA[小鸟小鸟，往前冲]]></description><link>https://blog.youkuaiyun.com/crybird</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; crybird]]></copyright><item><title><![CDATA[从C++和COM角度理解“依赖注入”]]></title><link>https://blog.youkuaiyun.com/crybird/article/details/115337718</link><guid>https://blog.youkuaiyun.com/crybird/article/details/115337718</guid><author>crybird</author><pubDate>Tue, 30 Mar 2021 22:15:38 +0800</pubDate><description><![CDATA[从C++和COM角度理解“依赖注入”名词解释：依赖项产生问题：耦合解决方案：注册服务、注入依赖本质：几句话就说清楚
一个高大上的概念，一个控制反转技术。所谓的。
名词解释：依赖项
依赖项（dependency）：另一个对象依赖之。比如：
class A
{
public:
void fun() {…}
};
如果另外一个类需要调用A::fun，那么类A就是一个依赖项。
某个类B可能会创建一个A对象a，并调用a.fun();
class B : public A
{
public:
void method()]]></description><category></category></item><item><title><![CDATA[Word功能-“多级列表”-用法笔记]]></title><link>https://blog.youkuaiyun.com/crybird/article/details/108524419</link><guid>https://blog.youkuaiyun.com/crybird/article/details/108524419</guid><author>crybird</author><pubDate>Thu, 10 Sep 2020 23:05:36 +0800</pubDate><description><![CDATA[【转】http://www.360doc.com/content/19/0912/16/3595160_860609396.shtml

以下为个人感想：

对于这个功能，觉得非常有用！！！尤其是写标书。

我的习惯：先设置多级列表，再正文格式输入标题，最后给标题选样式。

以前自己搞定了，设置好了dot格式。后来被拷贝粘贴的冲了，分析了XML格式的，改回去了。

但还是没有从根本理解这个功能怎么设置。

今天看了链接文档，证实了我的推测，才彻底理解了。

=========================]]></description><category></category></item><item><title><![CDATA[关于全局变量内存泄漏的误报和解决方案]]></title><link>https://blog.youkuaiyun.com/crybird/article/details/80907192</link><guid>https://blog.youkuaiyun.com/crybird/article/details/80907192</guid><author>crybird</author><pubDate>Wed, 04 Jul 2018 09:13:35 +0800</pubDate><description><![CDATA[现象：全局变量是个类对象，析构的时候会释放内存。但系统会误报内存泄漏。 
原因：报告比析构早，释放的时候已经报告完了。 
解决：至少有以下三个解决方案：

1.使用#pragma comment(lib, “xxx.lib”) 而不使用设置里的“附加依赖项”。 
这个具体细节应该是编译器实现的原因，但至少不误报了。 
测试环境vs2017，测试了一个第三方样例，一个自己的Demo，结果一致。 
（...]]></description><category></category></item><item><title><![CDATA[COM线程模型-套间（新）]]></title><link>https://blog.youkuaiyun.com/crybird/article/details/80808960</link><guid>https://blog.youkuaiyun.com/crybird/article/details/80808960</guid><author>crybird</author><pubDate>Mon, 25 Jun 2018 23:32:28 +0800</pubDate><description><![CDATA[严重声明： 
[原]crybird如有转载请注明出处。 
今天偶然看到，我10年前对COM的心得笔记，竟然有不止一人引用，倍感欣慰。于是，把现在的心得加以补充。 
本故事纯属虚构，只想以轻松的心情理解COM，别无他意（对各方没有任何不友好、不尊重之意，谢谢理解）。

【某外包公司的事故】

背景，COM规范太复杂了，按规范编写服务组件和客户端调用，代码量太大，快没人用了。。。

第一回~[主线程内...]]></description><category></category></item><item><title><![CDATA[socket的IO模型(仅有分类）]]></title><link>https://blog.youkuaiyun.com/crybird/article/details/78929660</link><guid>https://blog.youkuaiyun.com/crybird/article/details/78929660</guid><author>crybird</author><pubDate>Fri, 29 Dec 2017 11:26:22 +0800</pubDate><description><![CDATA[Linux下socket的五种IO模型
1.阻塞I/O
2.非阻塞I/O
3.I/O多路复用[重点]
4.信号驱动I/O
5.异步I/O[重点]
Windows下socket的五种IO模型
1.选择模型 select模型
2.异步选择 WSAAsyncSelect模型
3.事件选择 WSAEventSelect模型
4.重叠I/O模型（
  4.1基于事件通知的重叠I/O模型
  4.2基于完成例程]]></description><category></category></item><item><title><![CDATA[Oracle ORA-29275:部分多字节字符]]></title><link>https://blog.youkuaiyun.com/crybird/article/details/78574941</link><guid>https://blog.youkuaiyun.com/crybird/article/details/78574941</guid><author>crybird</author><pubDate>Sun, 19 Nov 2017 16:06:37 +0800</pubDate><description><![CDATA[原以为是字符转换问题，设置了环境变量 
NLS_LANG 
SIMPLIFIED CHINESE_CHINA.ZHS16GBK（这个值根据实际情况）后来发现，数据库里有半个中文，ADO查询的时候报异常根本处理方法：处理实际数据 
（实际项目中不查这个字段了。。。）]]></description><category></category></item><item><title><![CDATA[坑爹的ado+oracle；感谢客户方的技术]]></title><link>https://blog.youkuaiyun.com/crybird/article/details/78178711</link><guid>https://blog.youkuaiyun.com/crybird/article/details/78178711</guid><author>crybird</author><pubDate>Mon, 09 Oct 2017 00:21:53 +0800</pubDate><description><![CDATA[ADO连接oracle，执行SQL语句的时候，SQL文最后的分号；竟然不能解析。。。十分感谢客户方的技术。。。2017-10-09   00:20:53]]></description><category></category></item><item><title><![CDATA[32位程序如何使用ADO访问64位Oracle数据库[转]]]></title><link>https://blog.youkuaiyun.com/crybird/article/details/78115816</link><guid>https://blog.youkuaiyun.com/crybird/article/details/78115816</guid><author>crybird</author><pubDate>Wed, 27 Sep 2017 18:23:40 +0800</pubDate><description><![CDATA[原始链接 http://blog.youkuaiyun.com/HXC_HUANG/article/details/71773850]]></description><category></category></item><item><title><![CDATA[ADO数据库编程详解(C++)----初级入门篇]]></title><link>https://blog.youkuaiyun.com/crybird/article/details/78036155</link><guid>https://blog.youkuaiyun.com/crybird/article/details/78036155</guid><author>crybird</author><pubDate>Wed, 20 Sep 2017 00:23:40 +0800</pubDate><description><![CDATA[转帖 
http://blog.youkuaiyun.com/mingojiang/article/details/8531864]]></description><category></category></item><item><title><![CDATA[MFC动态库使用boost::thread运行时报错的问题]]></title><link>https://blog.youkuaiyun.com/crybird/article/details/77850461</link><guid>https://blog.youkuaiyun.com/crybird/article/details/77850461</guid><author>crybird</author><pubDate>Tue, 05 Sep 2017 13:33:55 +0800</pubDate><description><![CDATA[【转】http://blog.youkuaiyun.com/comhaqs/article/details/53884116在MFC动态库中，如果包含有boost::thread的相关文件，可能会导致编译时没问题，运行时报错，报错位于ASSERT(AfxGetThread() == NULL)。百度得知，应该是静态链接boost::thread库时，boost::thread库会修改相关函数指针，具体见网页：h]]></description><category></category></item><item><title><![CDATA[VC设置断点无效的各种解决方法]]></title><link>https://blog.youkuaiyun.com/crybird/article/details/70898574</link><guid>https://blog.youkuaiyun.com/crybird/article/details/70898574</guid><author>crybird</author><pubDate>Fri, 28 Apr 2017 11:56:40 +0800</pubDate><description><![CDATA[我用过的方法： 。。。
道听途说： 。。。]]></description><category></category></item><item><title><![CDATA[转载 ado用法]]></title><link>https://blog.youkuaiyun.com/crybird/article/details/70545036</link><guid>https://blog.youkuaiyun.com/crybird/article/details/70545036</guid><author>crybird</author><pubDate>Sun, 23 Apr 2017 20:37:14 +0800</pubDate><description><![CDATA[ado sqlserver]]></description><category></category></item><item><title><![CDATA[无法主动调用线程函数怎么办？timer妙用（不太好理解）]]></title><link>https://blog.youkuaiyun.com/crybird/article/details/70243481</link><guid>https://blog.youkuaiyun.com/crybird/article/details/70243481</guid><author>crybird</author><pubDate>Wed, 19 Apr 2017 17:54:33 +0800</pubDate><description><![CDATA[场景： 
做word插件，用户点击按钮后执行一个命令。 
由于不能影响界面，所以要开一个线程，等完事后通知word。]]></description><category></category></item><item><title><![CDATA[用GDI+放大图片(DrawImage)时的“边界像素”问题]]></title><link>https://blog.youkuaiyun.com/crybird/article/details/56008976</link><guid>https://blog.youkuaiyun.com/crybird/article/details/56008976</guid><author>crybird</author><pubDate>Mon, 20 Feb 2017 10:39:25 +0800</pubDate><description><![CDATA[前人发现过类似的：）并已经有了解决方法： 
http://webserver2.tecgraf.puc-rio.br/~scuri/gdiplus/drawimage_scale_problem.html我的问题升级了：（我需要放大的，是图片的一部分（是个矩形），并且矩形本身带有清晰的对称边框。]]></description><category></category></item><item><title><![CDATA[SQLite自定义聚合函数 [类似MAX（field）]]]></title><link>https://blog.youkuaiyun.com/crybird/article/details/54862993</link><guid>https://blog.youkuaiyun.com/crybird/article/details/54862993</guid><author>crybird</author><pubDate>Sat, 04 Feb 2017 14:35:47 +0800</pubDate><description><![CDATA[SQLite中使用sqlite3_create_function来注册自定义函数是很常用的。 
注册的函数分为两类，普通函数和聚合函数。 
自定义聚合函数相关例子很少，网上搜了很多，没有找到合适的资料。 
摸索出一个可行的办法，记录于此。 
不正确的地方请多指教。]]></description><category></category></item><item><title><![CDATA[多个“界面线程”的小坑]]></title><link>https://blog.youkuaiyun.com/crybird/article/details/51671085</link><guid>https://blog.youkuaiyun.com/crybird/article/details/51671085</guid><author>crybird</author><pubDate>Tue, 14 Jun 2016 13:52:06 +0800</pubDate><description><![CDATA[由于某些原因，需要两个界面线程。
其中一个是主要的界面线程A，另外一个是副界面线程B，弹出对话框，进行一些后台工作，但需要交互。
现象：B界面弹出后，A界面就没反应了，偶尔才反应一下。
原因：A偶尔反应是因为不断的销毁和创建B。
填坑：
启动B的代码是
CxxDlg dlg;
dlg.DoModal();
应该改为
CxxDlg dlg(CWnd::GetDesktopWindow]]></description><category></category></item><item><title><![CDATA[fread的误区（以文本格式打开文件）]]></title><link>https://blog.youkuaiyun.com/crybird/article/details/50914307</link><guid>https://blog.youkuaiyun.com/crybird/article/details/50914307</guid><author>crybird</author><pubDate>Thu, 17 Mar 2016 15:48:13 +0800</pubDate><description><![CDATA[先看一段代码			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 +]]></description><category></category></item><item><title><![CDATA[关于TLB]]></title><link>https://blog.youkuaiyun.com/crybird/article/details/50854132</link><guid>https://blog.youkuaiyun.com/crybird/article/details/50854132</guid><author>crybird</author><pubDate>Fri, 11 Mar 2016 10:57:58 +0800</pubDate><description><![CDATA[一直没有用到，所以没怎么注意。
今天用的时候，发现VC不能自动生成COM的TLB文件。
在设置里没有找到合适的选项，按直觉可以自动生成才对。
网上搜了个办法：


VC的文件-打开-打开文件...，
选中COM组件（DLL或者EXE），
点击打开按钮旁边的下拉框，选打开方式...(资源)，打开。


打开文件后，是个树状的资源列表，选择TYPELIB，
点击右键，选择导出菜]]></description><category></category></item><item><title><![CDATA[Levenshtein距离，Edit Distance]]></title><link>https://blog.youkuaiyun.com/crybird/article/details/50325409</link><guid>https://blog.youkuaiyun.com/crybird/article/details/50325409</guid><author>crybird</author><pubDate>Wed, 16 Dec 2015 11:29:57 +0800</pubDate><description><![CDATA[最近用到这个东西，记录一下比较重要的资料地址：


这篇博文是比较详尽的，从概念到原理：
算法之美——求解 字符串间最短距离（动态规划）

http://blog.youkuaiyun.com/huaweidong2011/article/details/7727482



另外还有百度百科和维基百科，百度的通俗易懂，维基的有深度


其他还有很多，不能一一列举了。]]></description><category></category></item><item><title><![CDATA[换一个高度看自绘 - windows自绘控件总结]]></title><link>https://blog.youkuaiyun.com/crybird/article/details/38579739</link><guid>https://blog.youkuaiyun.com/crybird/article/details/38579739</guid><author>crybird</author><pubDate>Fri, 15 Aug 2014 08:11:05 +0800</pubDate><description><![CDATA[转自 http://blog.youkuaiyun.com/blz_wowar/article/details/2046886
相关 http://msdn.microsoft.com/zh-cn/library/ms364048%28VS.80%29.aspx]]></description><category></category></item></channel></rss>