- 博客(87)
- 资源 (4)
- 收藏
- 关注
原创 MFC程序中Debug模式下调试信息输出到控制台
有时候我们会想看到调试信息,但是在正式发布程序中又不想看到。下面的方式就是在MFC中Debug模式输出调试信息到控制台,在Release模式下没有输出。#ifdef _DEBUG#include #endif在InitInstance()函数如下#ifdef _DEBUG AllocConsole();#endif在ExitInstance()函数如下
2015-11-24 11:29:55
3884
原创 CStringA,CStringW和CString之间的转换
现实中用到CStringA和CStringW的转换,就封装了一下。#pragma onceclass CStringToolExt{public: CStringToolExt(); ~CStringToolExt();public: static CStringA CStrT2CStrA(const CString &cstrSrc); static CStringW CSt
2015-11-05 14:27:38
6779
转载 为什么寄存器比内存快?
作者: 阮一峰日期: 2013年10月14日计算机的存储层次(memory hierarchy)之中,寄存器(register)最快,内存其次,最慢的是硬盘。同样都是晶体管存储设备,为什么寄存器比内存快呢?Mike Ash写了一篇很好的解释,非常通俗地回答了这个问题,有助于加深对硬件的理解。下面就是我的简单翻译。原因一:距离不同距离不是主要因素,但是最好懂,
2013-10-21 16:11:43
1170
原创 可重入函数
可重入性函数是指:可以在多任务,多线程,并发等情况下访问不出错的函数。在嵌入式、多线程、多进程和并发执行的程序中,多个目标同时调用一个函数而不会出现数据错误,需要函数具备以下特点:不调用系统函数和不可重入性函数。在嵌入式中,不要使用系统自带的string和标准IO函数,需要自己实现,在其他开发中不调用非线程安全的函数。不调用静态数据,或者对静态数据加互斥操作。嵌入式中可以关中断,互斥信
2013-10-18 15:49:14
1752
原创 优先级反转和解决方法
优先级反转的描述:假设任务1,任务2,任务3;他们的优先级顺序分别为1 > 2 > 3。有一个稀缺资源S,S由一个信号量控制为互斥访问。任务3正在执行,并申请到了资源S;任务1抢占了任务3的执行,任务3挂起,任务1执行;任务1申请资源S,发现被占用,所以挂起,任务3恢复执行;任务2抢占了任务3的执行,任务3挂起,任务2执行;任务2执行完毕,任务3恢复;任务3释放资源S,任务1抢占资源S
2013-10-15 11:26:09
14300
2
原创 c#制作简单启动画面
声明:代码照搬自SharpDevelop源码。 启动画面是程序启动加载组件时一个让用户稍微耐心等待的提示框。一个好的软件在有启动等待需求时必定做一个启动画面。启动画面可以让用户有心理准备来接受程序加载的缓慢,还可以让用户知道加载的进度和内容。本文只是记录最简单的构架。VS2010创建一个C# Windows窗体应用程序,将主窗体改名为FormMain,再创建一个窗体起名为SplashS
2013-03-29 11:26:28
17152
1
原创 设计模式——简单工厂
工厂模式是创建型模式。简单工厂是最简单的模式,主要是静态创建类型,代码如下: #region 简单工厂 public abstract class 产品 { public abstract string 展示(); } public class 产品一 : 产品 { public override string 展示() { return "型号:产品一。";
2013-01-03 22:14:03
1388
原创 Enum和单选框关联
有了enum我们可以列举类型了,有了单选框和复选框我们可以鼠标来选择了。但是编程的时候觉得让两个关联起来,写代码比较麻烦,所以想自动的关联起来。所以我尝试了一下,记录如下。假如一个星期的enum: public enum 星期 { 星期一 = 0, 星期二, 星期三, 星期四, 星期五
2013-01-03 22:08:05
1674
转载 windows7系统笔记本设置成虚拟WiFi热点(即“无线路由器”)
如果家中只有一根网线,却有两台或更多台笔记本需要连接到网络,借助软件,就可以将笔记本变身为无线路由器,即“WiFi热点”。 以windows7为例,其实它本身就自带了WiFi和SoftAp(即虚拟无线AP)功能,仅需激活他们,你就可以让自己的笔记本变身为一个“WiFi热点”,让其他笔记本都连入你的笔记本上网。 再打开你的笔记本的无线网卡“开关”后,以管理员身份进行快捷键wi
2012-12-22 07:38:18
890
原创 C#事件的实现
事件是C#中一个重要的内容,MSDN上有一个自定义事件的演示示例。我看了半天有点晕,所以新建了一个winform工程添加了一个按钮,然后找出调用的程序,一对比做了一个类似的示例,就明白了。看代码有时候比看文档来得更快。所以还是一贯的原则,来干的,不来稀的。 using System;namespace TestEventArgs{ /// /// 这个类对应于Ev
2012-12-19 11:25:11
3847
原创 ISerializable用法(初级)
家里只有一台电脑,影响老婆看电视剧了。赶紧拷贝完,洗袜子去...不解释,看注释。/* * Created by SharpDevelop. * User: iwateru * Date: 2012/12/15 * Time: 18:52 * * To change this template use Tools | Options | Coding | Edit Standa
2012-12-15 21:09:09
7377
1
原创 IEnumerable和IEnumrator用法
先用一个修改过的代码来演示用法,只来干的,不来稀的。/* * Created by SharpDevelop. * User: Owner * Date: 2012-12-14 * Time: 13:43 * * To change this template use Tools | Options | Coding | Edit Standard Headers.
2012-12-14 15:35:35
8215
原创 win7和xp差异很大呀,哥要崩溃了。
RTU一台带网卡。由于现场需求屏蔽广播包。给RTU发送包》》》 RTU网卡屏蔽接受广播包: 用xp连接,发送arp,有应答。 用win7连接,发送arp,无应答。 RTU网卡打开接受广播包: 用xp连接,发送arp,有应答。 用win7连接,发送arp,有应答。 给PC发送包》》》 用xp发送arp包和用win7发送的arp
2012-11-21 17:09:32
1777
转载 程序员如何保持优秀
1. 小范围的选择一些有用技术,透彻的学习它们,拥抱它们。然后不断的扩展这个范围。2. 理解各种数据结构的优点和缺点,包括它们在内存中和在硬盘上的各自表现。3. 理解各种算法的优点和缺点。4. 了解你的工作领域。关上电脑,去做你的用户们在做的事。5. 有准备,有愿望,有能力在任何时候投入到多种技术层面中。你必须知道表象下的技术原理。在“各个技术层面的掌握程度”和“编程能力”上有着密
2012-11-11 08:00:59
1389
原创 ubuntu配置compiz乱套之后的恢复和彻底删除kubuntu-desktop
这段时间鼓捣着ubuntu的界面玩,遇到的几个问题的解决方法记录下来,以备不时之需。第一:我安装了kubuntu-desktop然后发现不喜欢想删除,方法如下:sudo apt-get --purge remove libqtcore4,然后删除登陆界面sudo apt-get autoremove plymouth-theme-*。第二:我配置compiz,最后弄得乱七八糟,键盘鼠标
2012-11-08 22:21:34
8936
原创 ubuntu配置无线网卡驱动
前段时间安装了一个ubuntu系统,因为没有有线的联网,只能用无线网卡,然后就各处寻找安装无线网卡驱动的信息。因为我的无线网卡型号是:MW150UM。所以就采用网络上的一个方法安装ndiswrapper,用windows下的驱动,然后怎么怎么的,安装好了,非常高兴。但是呢,我发现当我ubuntu内核升级之后,无线网卡不起作用了。这个时候重复以前的步骤也不起作用,所以无奈之下继续百度搜索,发现以
2012-11-06 09:35:51
13901
2
原创 规则和管理
故事中国式过马路就是凑够一堆人就可以走了,和红绿灯无关。当看到这个事实时,联想自己的公司行为:中国式公司管理是否有类似之处呢?有规则无管理?或者是没规则按紧急情况来?您有何感想?
2012-11-01 08:37:24
958
原创 你到底哪天生日?
故事:那天餐叙结束,和大领导握手道别。领导亲切的说:“祝你生日快乐!”洒家说:“谢谢领导!再过八个月就到了。”领导扭头跟司机说:“怎么样?我没说错吧?上上下下也就他敢讲真话。其他人的生日我说哪天就是那天。”大家看到这样的团队,各位职场混过来的小兵大将们作何感想呢?
2012-11-01 08:30:53
1200
原创 Ubuntu搭建LAMP环境
今天想做一个小网站,就在ubuntu上按照网页上搜索的方法搭建了一个环境。我媳妇挺着大肚子无聊的看着我敲了大半天电脑。我赶紧记录下来,陪媳妇看电视去。希望能帮到有和我同样需求的人。下面拷贝自我的ZIM Desktop WikiLAMP搭建环境Created 星期二 30 十月 2012安装过程第一步 安装Apache2sudo apt-get install
2012-10-30 21:01:34
34159
11
原创 变态的C声明怎么识别?
做C语言程序经常会遇到变态的声明,学习了msdn上的一篇文章,豁然开朗。char *( *(*var)() )[10]; ^ ^ ^ ^ ^ ^ ^ 7 6 4 2 1 3 51. var被定义为2. 一个指向3的指针3. 一个返回值为4的函数4. 一个指向5的指针5. 一个拥有10个变量的一维数组,它66. 指向77. ch
2012-09-26 17:33:13
1350
1
翻译 基于对话框的单实例应用程序
介绍 有许许多多的文章介绍单示例应用程序的实现,这里演示一种非常简单的基于MFC对话框的应用程序,本技术可以运用到ATL/WTL和普通的win32应用程序。实现创建一个基于对话框的MFC工程。打开资源文件(.rc),找到主窗口的模板,并添加一句话。把这个窗口类注册为SINGLE_INSTANCE_APP。IDD_SINGLEINSTANCE_DIALOG DIALOGEX
2012-09-06 09:59:14
1238
原创 boost的类型转换
原来我总结过c++的一些类型转换函数:http://blog.youkuaiyun.com/callmeback/article/details/4040583static_cast, dynamic_cast, const_cast, reinterpret_cast其中各有各的用处和弊端。boost的Conversion库分别实现了四个类型转换函数:polymorphic_case, polymo
2012-07-12 16:24:41
5975
原创 智能指针weak_ptr
智能指针weak_ptr主要用来协助shared_ptr。不参与引用计数,但是有以下好处:1 打破递归的依赖关系2 使用一个共享的资源但是不要所有权,不添加引用计数3 避免悬空指针。使用方法有二:// 方法一boost::shared_ptr sp(new std::string("method1");// 从shared_ptr构建出来boost::weak_pt
2012-07-12 11:04:32
937
原创 代码注释法学习智能指针intrusive_ptr
智能指针intrusive_ptr一般情况下不要使用,除非被指类的某个成员函数需要返回this指针。因为intrusive_ptr需要自己实现引用计数,所以实现起来比较复杂。还要实现intrusive_ptr_add_ref和intrusive_ptr_release两个函数。参考《Beyond the C++ Standard Library: An Introduction to Bo
2012-07-09 15:36:26
3615
原创 简单好玩的C++关键字mutable
mutable是一个好玩的C++关键字,也是我第一次遇到。于是查了查msdn,结果发现果然是好玩的关键字。首先,它只能修饰非const,非static的类数据成员。其次,它用来突破const函数。再次,它就这么一个功能。class X{public: // 在逻辑上GetFlag只是获取我的m_flag状态,所以修饰为const // 但是,我需要知道其中一些动态的
2012-07-09 10:16:15
1139
原创 智能指针shared_ptr
boost库的第二类智能指针是shared_ptr。shared_ptr的特点是:一、 它可以指向相同的内容,靠引用计数来决定内容是否释放。其中new int申请的空间,在三个指向它的指针全部释放时才被释放,否则只是引用计数减一。#include #include int _tmain(int argc, _TCHAR* argv[]){ boost::shared_ptr
2012-07-08 12:39:20
2865
原创 智能指针scoped_ptr
scoped_ptr特点:1 用法绝大多数情况下和auto_ptr相同。2 不支持自增,自减操作。3 不能被赋值或者复制构造。4 由于3的原因不能作为容器的元素,这也是优于auto_ptr的原因。scoped_ptr使用场景:1 在有可能抛出异常的作用域中使用时,减少有可能资源释放不正确导致的错误。2 函数中控制路径多并且复杂时,减少代码的逻辑阅读难度和资源释放有可能带
2012-07-05 13:21:09
1557
Windows仿真FatFs移植代码
2012-02-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人