自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 06 | 链表(上):用单链表的方式判断回文字符串

总结1.熟悉掌握了单链表的数据结构2.熟悉了如何创建一个单链表3.了解快慢指针的妙用:用不同的速度在链表中移动,在移动的同时把前半部分链表翻转,这样就可以在遍历完成之后得到两个一分为二的锻炼表,下一步只需要进行挨个比较,就可以判断是否为回文字符串。4.这里面快慢指针的最主要的用处在于寻找到链表的中点。利用快慢指针可以节省遍历的时间。4.用手绘图形的方法了解链表操作和代码之间的...

2019-09-22 16:58:23 841

原创 06 | 链表(上):如何实现LRU缓存淘汰算法?--总结

除了基于链表的实现思路,实际上还可以用数组来实现 LRU 缓存。大致的思路是:我们创建一个指定大小的数组方式一:前位置表示最新访问记录,后位置表示需要清理的记录当有一条新的记录进来1.首先遍历数组,看该记录是否已经缓存了2 如果已经缓存,且位置为K,则将该记录用一个临时变量记住,将k-1....0都往后挪一个位置,再将该临时变量插入0位置。3,如果该记录没有缓存,则将0...

2019-09-01 14:58:05 146

原创 C++程序中如何尽量避免内存泄漏

C++中涉及到的内存的管理问题可以归结为两方面:正确地得到它和有效地使用它什么情况下需要注意释放内存堆内存泄漏(Heap leak):对内存指的是程序运行中根据需要分配通过malloc,realloc new等从堆中分配的一块内存,再是完成后必须通过调用对应的 free或者delete 删掉。如果程序的设计的错误导致这部分内存没有被释放,那么此后这块内存将不会被使用,就会产生He...

2019-04-16 17:27:56 1111

原创 在一个工程添加对话框类,BCGPMDIFrameWnd.h中编译错误

当我在自己的一个工程中添加一个对话框资源,并且对该对话框添加class时,我想让该dialog从CBCGPDialog派生,但是默认的添加class的对话框中基类只能选择CDialogEx,添加完成之后再将基类修改成CBCGPDialog,发现编译错误。根本原因是因为在添加该dialog类时,会默认在stdafx.h文件中加上这么一行。 但是在实体设计中,在某些地方使用了宏定义,默...

2019-01-08 14:59:15 236

转载 Visual Studio2017 远程调试 Remote Debugger

前言大家在使用vs打包后的文件部署到服务器后,有时候我们需要对线网的后台进行调试。但是它不像在VS中。这个时候我们该怎么调试呢?微软想到了这一点,他们在 VS 中给我们提供了一个功能: Remote Debugger,要远程调试我们就需要用到它。关于 Remote Debugger使用VS远程调试器Remote Debugger,你可以调试部署在不同的计算机上的VS应用程序。...

2018-12-04 09:36:38 310

原创 进程外组件调用方法

管理员权限运行 在注册表的clsid中能找到已经注册的组件的clsid还可以找typelib TypeLib也在class_root中能找到{EBC88567-CFEA-4DA7-B899-E27B5169408E}如果这些目录都对了,那么启动的exe组件就是对的那个组件。如果要调试,那就在下面这个位置增加一个参数。从这里能看出来,当前这...

2018-11-27 14:36:52 711

原创 《重构:改善既有代码的设计》第一章整理笔记

1.2重构第一步:测试环境重构前,先检查自己是否有一套可靠的测试机制,这些测试必须有自我检验能力也就是在做修改之前,先设计一些测试数据,用于测试修改完的代码是否有bug 1.3 分解并重组尽量将大的代码块分解成小的代码块先找出代码中整块的逻辑代码,看看是否能移除 Extract method 工具:SmallTalk ,Refactoring Browser...

2018-11-26 08:40:49 227

原创 注册exe组件失败的原因

这种情况下,就是指定的这个函数在exe所依赖的某个dll中没找到。首先,打开depend(64位程序就用depend64位找) ,看看这个EXE中哪个dll有问题。这些API开头的不用管,因为这是新版本的dll。只要安装了VS2015的SDK这些dll应该都有,只是因为depend版本较低,不能识别这些dll,因此有提醒。实际上的错误是,上面图中的dll中有一个函数找不到。...

2018-07-18 16:03:31 2242

原创 函数不是接口的成员

接口一般写在idl文件中(IRONCAD的是写在*.if文件中),通过编译会生成一个tlb文件,这个tlb文件是在外部使用的,不限制语言,使用的时候需要在外部import这个tlb文件,就会生成一个对应这种语言的tlh文件,这个tlh文件一般是放在该工程内。当使用该接口时,就会从这个Tlh文件中读取,如果发现某个函数不是该接口的成员函数,一般的原因就是idl中没有定义。所以增加接口函数时,不能只在...

2018-07-03 14:41:18 282

原创 加一个flag

BOOL CPropertyBrowser::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)  { // Check whether the current mouse position is on a control. Add by hsl 2018/5/24// if (m_bScrolling)// {// return TRU...

2018-05-31 11:15:10 186

原创 拿到第一个子窗体并发送消息

CPoint ptScreen(pMsg->lParam); CRect rect; ::GetWindowRect(pMsg->hwnd, &rect); if (rect.PtInRect(ptScreen)) { return FALSE; } HWND hParent = ::GetDesktopWindow(); while (true) {...

2018-05-23 11:22:55 230

原创 查看callstack中隐藏的代码

2018-05-16 14:26:47 671

转载 从AFX_MANAGE_STATE(AfxGetStaticModuleState())说起

文章转载自:从AFX_MANAGE_STATE(AfxGetStaticModuleState())说起以前写MFC的DLL的时候,总会在自动生成的代码框架里看到提示,需要在每一个输出的函数开始添加上AFX_MANAGE_STATE(AfxGetStaticModuleState())。一直不明白这样做的含义,也一直没有这样做,而且代码也工作得好好的,所以感觉这好像一句废话。最近的项目中,需要在D...

2018-04-12 14:38:01 139

原创 内容规划

1. 内存泄漏(本质,注意事项)2. 回调函数架构设计3. Visual studio extension设计4. 常规dll和扩展dll5. dll app 和exe app

2018-04-10 13:39:59 1185

转载 COM组件设计与应用(四) 简单调用组件

一、前言  同志们、朋友们、各位领导,大家好。   在 VCKBASE 的顶力支持下,在各位网友回帖的鼓励下,我才能顺利完成系列论文的前三回。书到本回,我们终于开始写代码啦。写点啥那?恩,有了!咱们先从如何调用现成的简单的组件开始吧,同时也顺便介绍一些相关的知识二、组件的启动和释放  在第三回中,大家用“小本本”记录了一个原则:COM 组件是运行在分布式环境中的 。于是,如

2017-12-26 11:01:24 179

空空如也

空空如也

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

TA关注的人

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