- 博客(169)
- 资源 (2)
- 收藏
- 关注
转载 VMware的快照和克隆总结
多重快照功能简介: 快照的含义:对某一个特定文件系统在某一个特定时间内的一个具有只读属性的镜像。当你需要重复的返回到某一系统状态,又不想创建多个虚拟机的时候,就可以使用快照功能。其实,快照并不是VMware Workstation 5的新功能。早在VMware Workstation 4的时代,就已经支持快照功能了。但是VMware Workstation 4只能生成一个快照,也就是说,VM...
2018-03-20 00:42:40 2014
转载 Ring3下的DLL注入工具
(开源) Ring3下的DLL注入工具 x86&x64(NtCreateThreadEx + LdrLoadDll方式实现,可以注入系统进程)http://blog.csdn.net/sunflover454/article/details/50441146工具介绍及使用请移步:http://blog.csdn.net/sunflover454/article/details/50
2017-11-29 16:49:16 520
原创 病毒木马查杀实战第018篇:病毒特征码查杀之基本原理
前言 在本系列的导论中,我曾经在“病毒查杀方法”中简单讲解过特征码查杀这种方式。而我也在对于实际病毒的专杀工具编写中,使用过CRC32算法来对目标程序进行指纹匹配,从而进行病毒判定。一般来说,类似于MD5以及CRC32这样的算法,在病毒大规模爆发时是可以提高查杀效率的,但是传统的更为常用的方法是采用以静态分析文件的结构为主并结合动态分析的方法,通过反汇编来寻找病毒的内容代码段、
2017-11-15 13:29:39 1751
原创 多线程:PostThreadMessage 消息可能会丢失
在编写多线程程序时,通常都有如下的设计方案:在UI主线程中,创建后台worker线程;这个worker线程在后台完成一定的任务之后,需要通知UI主线程。后台worker线程主动通知UI主线程,我们可以使用PostMessage()和PostThreadMessage()。 在开发过程中,发现一个问题,所以在本文中提醒大家,如下:使用PostThreadMes
2017-08-31 10:52:42 1493
转载 招聘面试的套路与原则
进入八月,开启了夏季的社招季。近期集中的招聘、面试,形成了一些心得体会,或者说叫套路,而隐藏在这些套路背后的其实是一些更通用的原则。所以,这一篇其实是写给招聘者的,不过,所有的应聘者也有可能有成为招聘者的一天,也可以参考。套路一次集中的扩招需求,有点像每年一度的晋升评审,都需要对大量的候选人进行定级评审,因为每一个新招聘的人员都会对其有一个定级的过程。在我们内部的晋升评审中,考察点有下面一些维度:
2017-08-29 22:10:08 456
转载 我的项目管理模型
说道项目管理很多人都会想到pmp,并且想当然认为知道了一点pmp就掌握了项目管理的金演出钥匙,其实不然,我也学了一点pmp,发现如果想把pmp直接使用到项目是有非常大的问题,主要体现在:1、pmp太过庞大,如果什么都按它那一套来估计国内很多中小型软件公司都要关门大吉,因为形成文档、人员配备、流程审批等等这些都要消耗掉很大成本和时间。2、pmp并不是专门针对软件开发的,有很多本来需要
2017-08-29 22:01:00 1596
原创 每次新版本build时,让软件的版本号自增
VC2005利用SVN的版本号,生成DLL和EXE文件的版本号TortoiseSVN下有一个SubWCRev程序,可以获取任意个路径对应的SVN版本库的版本号。并替换到文件对应位置。VC2005的资源文件可以控制生成的二进制文件版本号。可以利用VC2005的生成前命令,调用SubWCRev来获取最新的SVN版本号并写入生成的二进制文件中。程序也可以判断调用的DLL版
2017-08-29 21:59:25 765
原创 手工搭建vc自动构建服务器
版权声明:本文为博主原创文章,未经博主允许不得转载。 在软件开发过程中能有一台实现自动构建代码、产生与svn关联的版本、定时输出代码行数和圈复杂度等报表的自动构建服务器是非常重要的,但可惜的在国内除掉一些特别大的公司之外很多软件公司都没有自己的自动构建服务器,甚至连自动构建的意识都还没有。本文主要介绍的就是通过公共资源搭建简单实用的自动构建服务器。 第一步:准备硬件
2017-08-29 21:58:35 745
转载 C++开源代码项目汇总
Google的C++开源代码项目v8 - V8 JavaScript EngineV8 是 Google 的开源 JavaScript 引擎。V8 采用 C++ 编写,可在谷歌浏览器(来自 Google 的开源浏览器)中使用。V8 根据 ECMA-262 第三版中的说明使用 ECMAScript,并在使用 IA-32 或 ARM 处理器的 Windows XP 和 Vista、
2017-08-28 14:35:31 2504
转载 VC++、MFC最好的开源项目
VC++、MFC最好的开源项目介绍:介绍一下用VC++/MFC写的最好的开源项目。 Sourceforge.NET中有许多高质量的VC++开源项目,我列举了一些可以作为VC++程序员的参考。 正文: VC++、MFC中最好的开源项目作者:Sudhir Mangla VC++、MFC中最好的开源项目作者:Sudhir Mangla改编:http://www.okb
2017-08-28 14:26:46 3165
转载 C++常见笔试面试要点以及常见问题
C++常见笔试面试要点以及常见问题2017-01-03 21:10 by jiayayao, 178 阅读, 0 评论, 收藏, 编辑1. C++常见笔试面试要点: C++语言相关:(1) 虚函数(多态)的内部实现(C++虚函数实现多态原理(转载))(2) 智能指针用过哪些?shared_ptr和unique_ptr用的时候需要注意什么?shared_ptr的实现
2017-08-26 16:14:57 276
转载 boost中circular_buffer存储字符串的使用示例
#include using namespace boost;#define CIRCUALR_BUFFER_SIZE 1024*1024*1 //2MBint main(){ boost::circular_buffer cb(5); cb.push_back('a'); cb.push_back('b'); char ch[20] = {0};
2017-08-18 23:43:35 535
转载 Ring Buffer (circular Buffer)环形缓冲区简介
关于环形缓冲区的知识,请看这里http://en.wikipedia.org/wiki/Circular_buffer 上面这个网址已经介绍得非常详细了。下面这个网址有 RingBuffer的C代码实现, 其实是一个C的开源库 liblcthw 里实现的。http://c.learncodethehardway.org/book/ex44.html
2017-08-18 23:34:48 1433
转载 在 vs2008 里使用 SGI STL 的内存池特性
版权声明:本文为博主原创文章,未经博主允许不得转载。最近开发的一个C++项目是针对性能进行优化的,所以在很多细节上不得不"咬文嚼字", 而/C++其中强大的地方是对内存使用有很强的可控性, 而任何一个C++项目都离不开对内存的管理,所以要进行内存管理的优化内存池是必须要考虑的.内存池的做法理论在网上很容易找到,但却真正可靠高效的实现,还真是凤毛麟角,也许你会说ACE,boost
2017-08-13 17:40:15 312
转载 命令模式实现 Undo Redo
Undo/Redo框架(C++,带源码) http://www.cnblogs.com/wanghui9072229/archive/2011/08/29/2158960.html目录 前言框架设计代码实现单元测试后记参考资料 前言 终于结束赋闲在家的状态,又走上研发经理的岗位。老板“教导”我说:“作为‘空降’的管理者,要想得到团
2017-08-06 00:58:40 1327
转载 大话设计模式宏观总结——创建型&结构型&行为型
师傅验收项目的时候,问大话设计模式那三种类型的区别和联系是什么,顿时我傻了眼,因为除了知道这三种类型分别怎样称呼以外,从来都没想过为什么这样划分?于是,我便回答:我没想过这个问题,若是从字面上来理解的话,创建型应该负责的框架,结构型负责的应该是内部结构吧~然后师傅没说对错,只是说,不管自己是如何理解的,都要学会去验证~ 然后,我很自觉地开启了新的一篇博客总结之旅~导图
2017-08-05 23:11:00 394
转载 使用VS进行远程调试
开发环境在A主机上(有源码,已安装VS),运行环境在B主机上(无源码,未安装VS,只有可执行程序exe或dll,以及对应的pdb文件)。在A主机上使用相同版本的源码,对B主机上正在运行的程序进行调试。1. 找到A主机上的远程调试监视器程序,通常在目录 D:\Program\Microsoft Visual Studio 12.0\Common7\IDE\Remote Debugge
2017-08-02 08:29:39 264
转载 应用层vc实现三种文件监视方法 下面介绍三种非驱动实现文件监视的方法。 =============================================================
应用层vc实现三种文件监视方法下面介绍三种非驱动实现文件监视的方法。=================================================================通过 未公开API SHChangeNotifyRegister 实现================================================
2017-07-31 12:01:38 874 1
原创 锁定电脑屏幕,相当于“Win + L” 锁定效果
LockWorkStation functionLocks the workstation's display. Locking a workstation protects it from unauthorized use.SyntaxC++BOOL WINAPI LockWorkStation(void);
2017-07-31 09:11:05 764
转载 VC++ MFC 创建多级目录的方法 MakeSureDirectoryPathExists (另附 文件、目录操作类)
VC++ MFC 创建多级目录的方法 MakeSureDirectoryPathExists (另附 文件、目录操作类)转载▼此函数需要包含:imagehlp.h头文件和imagehlp.lib库文件方法一:void CDirXXXDlg::OnXXX() {// TODO: Add your control notification handler c
2017-06-16 14:33:17 2163
转载 一般函数指针和类的成员函数指针
一般函数指针和类的成员函数指针转载请注明原文网址: http://www.cnblogs.com/xianyunhe/archive/2011/11/26/2264709.html函数指针是通过指向函数的指针间接调用函数。函数指针可以实现对参数类型、参数顺序、返回值都相同的函数进行封装,是多态的一种实现方式。由于类的非静态成员函数中有一个隐形的this指针,因此,类的成员函数
2014-03-27 17:19:28 421
原创 获取exe和dll路径
获取exe和dll路径 2011-12-28 09:52:11| 分类:VC—小技巧 | 标签: |字号大中小 订阅 // TODO: 在此添加额外的初始化代码 CString SetupPath; GetExePath(SetupPath); //获取程序当前路径 CString config_userconfig=SetupP
2013-11-29 14:00:10 1148
转载 C++中构造函数和析构函数避免调用虚函数的问题
C++中构造函数和析构函数避免调用虚函数的问题 2010-07-07 21:15:16| 分类:C++/C | 标签: |字号大中小 订阅一、构造函数避免调用虚函数的问题在构造函数中调用虚成员函数,虽然这是个不很常用的技术,但研究一下可以加深对虚函数机制及对象构造过程的理解。这个问题也和一般直观上的认识有所差异。先看看下面的两个类定义。struct
2013-11-18 17:23:12 661
转载 在类的成员函数中调用delete this
在类的成员函数中调用delete this (2012-05-07 20:25:29)转载▼标签: c delete this 杂谈分类: 科技博文 在类的成员函数中能不能调用delete this?答案是肯定的,能调用,而且很多老一点的库都有这种代码。假设这个成员函数名字
2013-11-03 01:28:02 1111
原创 QueryInterface
#include using namespace std;class Base{public://virtual void FunBase() = 0;virtual int QueryInterface(int n,void** ppv) = 0;};class SubBaseA:public Base{public:virtual v
2013-11-01 02:11:44 590
转载 如何正确使用C++多重继承
如何正确使用C++多重继承2011年06月17日 — Asp J原创文章,转载请注明:转载自Soul Apogee本文链接地址:如何正确使用C++多重继承C++多重继承一直是一个让人搞不太清楚的一个问题,但是有时候为了实现多个接口,多重继承是基本不可避免,当然在Windows下我们有强大的COM来帮我们搞定这个事情,不过如果你想自己实现一套类似于COM的东西
2013-11-01 02:10:12 848
转载 C++对象内存布局--⑥GCC编译器-虚拟继承的虚基类表可能有两个
C++对象内存布局--⑥GCC编译器-虚拟继承的虚基类表可能有两个//证明GCC编译器-单个虚拟继承的虚基类表有两个.cpp//2010.8.18//派生类不定义虚函数,所以派生类对象的第一个位置(指向虚基类表的指针)所指向的表为虚基类表。这样定义更容易辨认到底是不是有两个虚基类表//事实证明,指向虚基类表的指针,向上寻址和向下寻址所
2013-11-01 01:41:41 941
转载 C++对象内存布局--⑩GCC编译器--虚拟继承--菱形继承
C++对象内存布局--⑩GCC编译器--虚拟继承--菱形继承//GCC编译器--虚拟继承--菱形继承.cpp//2010.8.19//GCC编译器#include using namespace std;////////////////////////////////////////////////////////
2013-11-01 01:40:13 871
原创 抽象工厂模式解析例子
抽象工厂模式中的有以下的四种角色: 抽象工厂(Abstract Factory)角色:担任这个角色的是工厂方法模式的核心,它是与应用系统商业逻辑无关的。具体工厂(Concrete Factory)角色:这个角色直接在客户端的调用下创建产品的实例。这个角色含有选择合适的产品对象的逻辑,而这个逻辑是与应用系统的商业逻辑紧密相关的。抽象产品(Abstract Prod
2013-10-24 17:26:03 663
转载 把控制台输入输出重定向到磁盘文件的C++方法(C++ 输入输出流和文件流)
#include using namespace std;int _tmain(int argc, _TCHAR* argv[]){ofstream file("C:/cdp_test_in.txt");file file file file.close();FILE *newIn = NULL, *newOut = NULL;freopen_s(&newI
2013-10-18 16:20:59 4163
转载 在MFC,Win32程序中向控制台(Console)窗口输出调试信息
在MFC,Win32程序中向控制台(Console)窗口输出调试信息在MFC程序中输出调试信息的方法有两种,一种是使用TRACE宏,可以向Output窗口输出调试信息;另一种是用MessageBox,弹出消息框来输出调试信息,但会影响程序的运行。其实有一种方法可以更为方便的输出调试信息,就是输出到控制台(Console)中,即不影响程序运行,又便于查看调试信息。方法如下:1、#incl
2013-10-18 15:05:40 875
转载 在MFC,Win32程序中向控制台(Console)窗口输出调试信息
在MFC,Win32程序中向控制台(Console)窗口输出调试信息在MFC程序中输出调试信息的方法有两种,一种是使用TRACE宏,可以向Output窗口输出调试信息;另一种是用MessageBox,弹出消息框来输出调试信息,但会影响程序的运行。其实有一种方法可以更为方便的输出调试信息,就是输出到控制台(Console)中,即不影响程序运行,又便于查看调试信息。方法如下:1、#incl
2013-10-18 14:59:24 1607
转载 MFC/DLL 编程时用独立的控制台窗口显示用户自定义调试信息
###############DBWindow.h###################ifndef _DBWINDOW_#define _DBWINDOW_#include //控制台输出时的文本颜色#define WDS_T_RED FOREGROUND_RED#define WDS_T_GREEN FOREGROUND_GREEN#define WDS_T
2013-10-18 11:53:09 1208
转载 MFC工程加入控制台调试信息输出
MFC工程加入控制台调试信息输出 在MFC程序中,可以使用TRACE宏或者OutPutDebugString()函数输出调试信息,TRACE宏可以在调试时像Output窗口输出调试信息,OutPutDebugString()函数的输出则可以用DebugView捕获(DebugView也可以捕获TRACE宏的输出,其官网在这里 ,具体使用请参考官网的说明),另外也可以通过Afx
2013-10-18 11:51:37 3226
转载 stl之map erase方法的正确使用
stl之map erase方法的正确使用STL的map表里有一个erase方法用来从一个map中删除掉指令的节点eg:map mapTest;typedef map::iterator ITER;ITER iter=mapTest.find(key);mapTest.erase(iter);像上面这样只是删除单个节点,map的形为不会出现任务问题,但是当在一个循
2013-10-17 18:05:50 1062
原创 启动遍历文件夹中的所有指定的文件 ( 执行exe文件 或者加载dll )
遍历文件夹中的文件 执行exe文件 或者加载dll HMODULE hModule = ::GetModuleHandle(NULL); char sFileName[256] = {0}; CString sPath = _T(""); GetModuleFileName(hModule, sFileName, 255); sPath.Format("%s",
2013-10-15 16:30:39 1355
原创 C++控制台程序 启动 控制台程序(以及命令行参数传递)
#include "stdafx.h"#include #include #include "stdafx.h"#include #include int main(int argc, char* argv[]) { STARTUPINFO si = { sizeof(si) }; PROCESS_INFORMATION pi; si.dwFlag
2013-10-15 16:05:37 10155 1
原创 VC中获取命令行参数
通常,在VC++中获取命令行参数的有如下几种方式: 在控制台程序中:C++运行时库通过入口函数main传递进来的参数int argc 和 char* argv[]。其中第二个参数将一个完整的命令行分割成指向各参数的字符串指针数组,数组中的每一个元素是一个指向参数的字符串指针。其中, argv[0] 指向应用程序名自身。如果想获得像窗口形式的完整命令行参数CmdLine的话,可以调用
2013-10-15 15:44:14 17384
原创 关于虚函数表的个人总结
关于虚函数表的个人总结1.虚函数表的创建:一个类存在虚函数的时候,编译器会为这个类创建一个虚函数表,这个表由这个类的所有对象共同所有。在创建这个类的类对象的时候将这个对象的前4个字节作为这项这个虚函数表的指针。即类对象的首地址中的内容存放的是虚函数表的地址。虚函数表的首地址里面存放的是第一个虚函数的首地址,如果有多个虚函数,则第二个虚函数的地址即为第一个虚函数首地址加上偏移量,
2013-09-30 00:00:24 593
原创 SVN版本管理,提交代码规范
SVN版本管理,提交代码规范项目开发要求: 1、工作目录要及时更新,不要和SVN服务器有太大的差别2、提交代码时,如果出现冲突,必须仔细分析解决,不可以强行提交3、提交代码之前先在本地进行测试,确保项目能编译通过,且能够正常运行,不可盲目提交4、必须保证SVN上的版本是正确的,项目有错误时,不要进行提交 SVN注意事项,请严格按照操作顺序操作,避免提交代码导致重
2013-09-29 16:34:23 10461 2
SDK模拟MFC隐藏WinMain,CWinApp,CDialog
2012-04-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人