自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

DefineFalseTrue的专栏

--放屁的上帝撒出一包雪

  • 博客(8)
  • 收藏
  • 关注

原创 喷qq很正常,挺360的纯属sb

<br />普通人看不懂也就罢了,混csdn的也被360的水军牵着鼻子走?<br />一次次的水军渲染,非要逼得我们这些原本心地单纯的人怀疑一切么?

2010-11-05 12:26:00 440

原创 当你PostMessage到焦头烂额的时候

<br />在各种 WM_ 间生活惯了, 仿佛离了PostMessage(),这份Google test就写不下去了。但是PostMessage() 的第一个句柄参数是个可恶的HWND,特别是当我想要发个键盘或是鼠标消息时,用spy++截了半天也找不到这天杀的消息到底是传到哪个HWND中了。这个时候,keybd_event 和 mouse_event可以帮上我们的大忙<br />其时,有时候翻翻windows的api,比起到处搜WM_能更快的解决问题。如果一个程序设计得足够好的话,它几乎可以完全通过keyb

2010-10-12 20:45:00 387

原创 堆调试利器-Pageheap

    刚刚花了一个星期磨出一来一个Planet的*.prj类型的一周项目,感觉收获很大,特此作出分享.    此项目是要解决一个Heap Corruption的问题,但是我们知道,通常情况下,当我们在堆中分配了一段内存,尽管在使用过程中可能出现了越界操作,但是系统在越界的一瞬间常常并不直接报错,而是在最后delete 时抛出一个Heap Corruption。这是因为操作系统的堆分配粒度是一个4k,若内存越界不是刚好在那个4k边界上,并不会引起操作系统的警觉而报错。   如果我们只是在Heap Corru

2010-10-12 20:12:00 346

原创 进一步理解C++中的堆(Heap)

由于最近接了一个Artemis Finland的项目,涉及到Heap Corruption的问题,所以对堆要有更深的理解。现整理我个人对于c++中堆的进一步理解如下。常用的分配函数有VirtualAlloc和HeapAlloc.VirtualAlloc请求4K为边界的整块内存,HeapAlloc分配任意大小的内存块。但后者是依赖前者实现的。也就是说在操作系统的层面上管理内存的最小单位是4K。要实现更小的内存管理(即HeapAlloc),需要用户态的程序自己去分配,比如说Windows的HeapManager

2010-09-28 00:06:00 596

原创 CreateProcess诡异的参数问题

<br />由于最近要写GTest的UI测试,要创建进程并向其发送消息。但是CreateProcess这个函数却一开始老是失败。<br />TEST(Clean_Up_Tests,Time_Table_Dlg ){ STARTUPINFO siStartInfo; PROCESS_INFORMATION piProcInfo; // Set up members of STARTUPINFO structure. siStartInfo.cb = siz

2010-07-14 19:10:00 534

原创 大型程序多语言的两种实现思路

<br />在国际化的程序中,经常要使用到语言切换的功能<br />以目前我正在做的planet为例,此程序有7种语言的切换功能<br />如此多的语言,为每一种语言单独设计一个对话框显然在大型程序中是不合适的<br />一般的,这会或多或少的利用dll.每个dll就是是个语言包。<br />为此,我所见的有两种设计思路:<br />1.语言包自带对话框资源<br />其实,其准确的说法是语言包自带对话框模版,因为这些dll工程中所引用的对话框都是完全相同的文件.<br />在写这些对话框时,他们的文本都只

2010-07-14 18:53:00 597

原创 运行语言环境可能影响数据库数据

这次的项目涉及对一个xls文件的修改。由于gDev所给的虚拟机几乎只装了一个vs2008(再次强烈bs这个虚拟机的制作方),所以很自然的,我便把这个xls文件拖到我的host机的win7系统下修改,再拖回去覆盖原有文件。很快我就发现这样在编译时会报错,一开始我的想法是会不会是我在修改的时候改掉了这个数据库的时间戳,而由于这是一个商用程序,很可能有较严密的防修改措施,而使其通不过。于是费尽周折,把这个xls先导成xml文件,改掉时间戳后再导回xls,但是这样一来文件仅从大小上来看就小了不少,一运行,确实还是会

2010-07-14 18:51:00 317

原创 CDialog与其对话资源绑定的更深入理解

最近一阵子做了点关于MFC的项目对于对话框选定资源的过程有了更进一步的了解按一般的风格,MFC的对话框中一般都会有这么一行:enum { IDD = xxxxx };在这个对话框的构造函数里一般会这样写InvoiceDialog::InvoiceDialog(CWnd* pParent /*=NULL*/) : CDialog(InvoiceDialog::IDD, pParent), m_Invoice(NULL){//{{AFX_DATA_INIT(InvoiceDialog)

2010-07-14 18:49:00 409

空空如也

空空如也

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

TA关注的人

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