自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Chinamming的专栏

三维图形, COM技术, VTK重建, CAD/CAE二次开发

  • 博客(644)
  • 资源 (2)
  • 论坛 (1)

转载 有了WCF,Socket是否已人老珠黄?

1. Socket相关背景      Socket,中文译为“套接字”,最早在UNIX中引入并得到广泛应用,后来微软在设计Windows时引入了UNIX中的这个概念和相应的设计理念,并针对Windows的特性略作调整,形成了Windows平台上的Socket,简称为“WinSock”,并为开发者提供了一整套的API,称为“Windows WinSock Win32 API ”。  WinS

2014-02-08 21:54:22 1883

有了WCF,Socket是否已人老珠黄?

1. Socket相关背景   Socket,中文译为“套接字”,最早在UNIX中引入并得到广泛应用,后来微软在设计Windows时引入了UNIX中的这个概念和相应的设计理念,并针对Windows的特性略作调整,形成了Windows平台上的Socket,简称为“WinSock”,并为开发者提供了一整套的API,称为“Windows WinSock Win32 API ”。  WinSo...

2014-02-08 21:54:00 148

转载 分享8年开发经验,浅谈程序员职业规划

序:在中国有很多人都认为IT行业是吃青春饭的,如果过了30岁就很难有机会再发展下去!其实现实并不是这样子的,在下从事.NET及JAVA方面的开发的也有8年的时间了,在这里在下想凭借自己的亲身经历,与大家一起探讨一下。明确入行的目的很多人干IT这一行都冲着“收入高”这一点的,因为只要学会一点HTML、DIV+CSS,要做一个页面开发人员并不是一件难事,而且做一个页面开发人员更容易

2014-02-08 21:51:29 1555 1

分享8年开发经验,浅谈程序员职业规划

序:在中国有很多人都认为IT行业是吃青春饭的,如果过了30岁就很难有机会再发展下去!其实现实并不是这样子的,在下从事.NET及JAVA方面的开发的也有8年的时间了,在这里在下想凭借自己的亲身经历,与大家一起探讨一下。明确入行的目的很多人干IT这一行都冲着“收入高”这一点的,因为只要学会一点HTML、DIV+CSS,要做一个页面开发人员并不是一件难事,而且做一个页面开...

2014-02-08 21:51:00 209

转载 理解 Windows API 调用过程

我们在应用层调用一个Win32 API, 系统内部究竟是如何执行的, 它是如何从用户态进入到内核态的呢 ?对于每层一些概念的解释,这里不详述了,具体可以参考理解Windows内核模式与用户模式.以Kernel32里的 CreateProcess 为例, 内部会调用ntdll.dll里导出的NtCreateProcess, ntdll.dll通过一个中断请求int 2Eh

2014-02-08 21:48:31 1073

理解 Windows API 调用过程

我们在应用层调用一个Win32 API, 系统内部究竟是如何执行的, 它是如何从用户态进入到内核态的呢 ?对于每层一些概念的解释,这里不详述了,具体可以参考理解Windows内核模式与用户模式.以Kernel32里的CreateProcess 为例, 内部会调用ntdll.dll里导出的NtCreateProcess,ntdll.dll通过一个中断请求int 2Eh(Sysenter)进入内核...

2014-02-08 21:48:00 102

转载 落伍的感觉

作为一个传统的Win32开发程序员,感觉这些年技术变化可真快,总结一下主要体现在以下几方面:     (1)互联网应用的重新崛起     从Google到阿里巴巴,再到Facebook, 从以前的博客到现在的微博,Web正在影响越来越多人的生活。越来越多的开发人员参与到Web开发中,从前端的Web2.0/Web3.0,HTML5, 到后台的云计算,云存储,云框架,各种新技术层出不穷

2014-02-08 21:40:22 1200

落伍的感觉

作为一个传统的Win32开发程序员,感觉这些年技术变化可真快,总结一下主要体现在以下几方面: (1)互联网应用的重新崛起 从Google到阿里巴巴,再到Facebook, 从以前的博客到现在的微博,Web正在影响越来越多人的生活。越来越多的开发人员参与到Web开发中,从前端的Web2.0/Web3.0,HTML5, 到后台的云计算,云存储,云框架,各种新技术层出不穷。 (2)...

2014-02-08 21:40:00 120

转载 如何学习WindDbg

作为一名Windows平台上的C/C++开发人员,我们有N个学习WinDbg的理由: 有些Bug只有在客户和QA的机器上才能重现,我们不可能在他们的机器上装一个VC吧WinDbg可以让我们方便的保存和分析Dump文件WinDbg的调试功能比VC强大的多,比如它有强大的API断点和条件断点调试内核和驱动,我们只能用WinDbg用WinDbg可以让你更深入的理解系统,理解计算机,用

2014-02-08 21:38:11 1318

如何学习WindDbg

作为一名Windows平台上的C/C++开发人员,我们有N个学习WinDbg的理由:有些Bug只有在客户和QA的机器上才能重现,我们不可能在他们的机器上装一个VC吧WinDbg可以让我们方便的保存和分析Dump文件WinDbg的调试功能比VC强大的多,比如它有强大的API断点和条件断点调试内核和驱动,我们只能用WinDbg用WinDbg可以让你更深入的理解系统,理解计算机,用V...

2014-02-08 21:38:00 77

转载 理解ATL中的一些汇编代码

我们知道ATL(活动模板库)是一套很小巧高效的COM开发库,它本身的核心文件其实没几个,COM相关的(主要是atlbase.h, atlcom.h),另外还有一个窗口相关的(atlwin.h), 所以拿来学习应该是很方便的。但是因为ATL的代码充满了模板和宏,内部还夹杂着汇编,所以如果没有比较丰富的C++模板和系统底层的知识,一般人会看得一头雾水。下面我们主要分析一下ATL中的一些汇编代码

2014-02-08 21:37:10 1189

理解ATL中的一些汇编代码

我们知道ATL(活动模板库)是一套很小巧高效的COM开发库,它本身的核心文件其实没几个,COM相关的(主要是atlbase.h, atlcom.h),另外还有一个窗口相关的(atlwin.h), 所以拿来学习应该是很方便的。但是因为ATL的代码充满了模板和宏,内部还夹杂着汇编,所以如果没有比较丰富的C++模板和系统底层的知识,一般人会看得一头雾水。下面我们主要分析一下ATL中的一些汇编代码。...

2014-02-08 21:37:00 56

转载 C++中实现回调机制的几种方式

(1)Callback方式Callback的本质是设置一个函数指针进去,然后在需要需要触发某个事件时调用该方法, 比如Windows的窗口消息处理函数就是这种类型。比如下面的示例代码,我们在Download完成时需要触发一个通知外面的事件:typedef void (__stdcall *DownloadCallback)(const char* pURL, bool bOK)

2014-02-08 21:36:03 928

C++中实现回调机制的几种方式

(1)Callback方式Callback的本质是设置一个函数指针进去,然后在需要需要触发某个事件时调用该方法, 比如Windows的窗口消息处理函数就是这种类型。比如下面的示例代码,我们在Download完成时需要触发一个通知外面的事件:typedefvoid(__stdcall*DownloadCallback)(constchar*pURL,boolbOK);voidDown...

2014-02-08 21:36:00 64

转载 C/C++中可变参数的原理

以前只是知道可变参数怎么用,但是一直对它的原理是似懂非懂,现在对计算机有了比较深刻的认识之后,回头再看,豁然开朗。要理解可变参数,首先要理解函数调用约定, 为什么只有__cdecl的调用约定支持可变参数,而__stdcall就不支持?实际上__cdecl和__stdcall函数参数都是从右到左入栈,它们的区别在于由谁来清栈,__cdecl由外部调用函数清栈,而__stdcall由被

2014-02-08 21:35:35 723

C/C++中可变参数的原理

以前只是知道可变参数怎么用,但是一直对它的原理是似懂非懂,现在对计算机有了比较深刻的认识之后,回头再看,豁然开朗。要理解可变参数,首先要理解函数调用约定, 为什么只有__cdecl的调用约定支持可变参数,而__stdcall就不支持?实际上__cdecl和__stdcall函数参数都是从右到左入栈,它们的区别在于由谁来清栈,__cdecl由外部调用函数清栈,而__stdcall由被调用...

2014-02-08 21:35:00 62

转载 理解程序内存

内存对很多人来说感觉是个很熟悉的东西,因为我们在用VC调试程序时,很多时候都会察看内存中变量的值。但是,很多时候我们的思维也就因此局限在有源码的模块,当遇到一些跨模块或是没有源代码的Bug,我们还是无从下手。因此,很有必要我们要对整个程序内存有个比较全局性的认识,这样遇到任何问题,你都能从容面对。我这里以32位的程序为例,我们知道32位程序总共有4G内存空间,其中低2G是用户地址空间,高2

2014-02-08 21:34:38 822

转载 怎样才算会一门编程语言

今天, 同事问我会不会Python, 我犹豫了一下:不会。 实际上我曾经学习过这个语言,当时还用它写了些小工具, 可现在我对这个语言的印象只剩下它那特殊的缩进格式了。 由此思考怎样才算会一门语言?我想每个程序员都接触过多门语言 , 那么究竟怎样才算会这门语言了呢?  会一门语言, 当需要它时, 应该能很快用该语言解决某个问题, 这个是最基

2014-02-08 21:34:01 1537

理解程序内存

内存对很多人来说感觉是个很熟悉的东西,因为我们在用VC调试程序时,很多时候都会察看内存中变量的值。但是,很多时候我们的思维也就因此局限在有源码的模块,当遇到一些跨模块或是没有源代码的Bug,我们还是无从下手。因此,很有必要我们要对整个程序内存有个比较全局性的认识,这样遇到任何问题,你都能从容面对。我这里以32位的程序为例,我们知道32位程序总共有4G内存空间,其中低2G是用户地址空间,高2...

2014-02-08 21:34:00 67

怎样才算会一门编程语言

今天, 同事问我会不会Python, 我犹豫了一下:不会。实际上我曾经学习过这个语言,当时还用它写了些小工具, 可现在我对这个语言的印象只剩下它那特殊的缩进格式了。由此思考怎样才算会一门语言?我想每个程序员都接触过多门语言 , 那么究竟怎样才算会这门语言了呢?会一门语言, 当需要它时, 应该能很快用该语言解决某个...

2014-02-08 21:34:00 169

转载 COM思想的背后

最近看公司的一些新产品和框架 , 发现清一色的“COM思想架构 ”, 这里说的“COM思想架构”是指不完全是标准COM组件的方式,而是指在设计上用到了COM思想。COM组件技术大概在1993年产生, 20年了, 为什么还有这么多人使用? 我们先来看看标准COM组件:标准COM组件(DLL方式)需要实现如下4个导出函数:DllRegisterServer 将组件信息写

2014-02-08 21:33:07 1081

COM思想的背后

最近看公司的一些新产品和框架 , 发现清一色的“COM思想架构 ”, 这里说的“COM思想架构”是指不完全是标准COM组件的方式,而是指在设计上用到了COM思想。COM组件技术大概在1993年产生, 20年了, 为什么还有这么多人使用?我们先来看看标准COM组件:标准COM组件(DLL方式)需要实现如下4个导出函数:DllRegisterServer 将组件信息写入注册...

2014-02-08 21:33:00 56

转载 XP之后Windows的一些变化

看到很多Windows开发人员,尤其是C++程序员思维还是停留在XP操作系统,当然根据工作是否需要新知识 ,这本身没有错。但是实际上Vista之后的Win7, 再之后的Win8 ,Windows已经发生了很大的变化,我们程序员也该了解和适应这些变化。先看看Windows的发展历史:从上面的图,我们可以看到大概时间点:Win 95: 1995Win 98: 1998W

2014-02-08 21:31:48 913

XP之后Windows的一些变化

看到很多Windows开发人员,尤其是C++程序员思维还是停留在XP操作系统,当然根据工作是否需要新知识 ,这本身没有错。但是实际上Vista之后的Win7, 再之后的Win8 ,Windows已经发生了很大的变化,我们程序员也该了解和适应这些变化。先看看Windows的发展历史:从上面的图,我们可以看到大概时间点:Win 95: 1995Win 98: 1998Win...

2014-02-08 21:31:00 42

转载 理解Windows内核模式与用户模式

内核层次架构windows程序运行分为内核模式和用户模式,内核模式可以访问所有的内存地址空间, 并且可以访问所有的CPU指令。一般程序运行在用户模式, 通过系统调用切换到内核模式执行系统功能,Windows系统通过这种方式来确保系统的安全和稳定。下面是内核的层次划分:硬件抽象层(Hardware Abstraction Layer) (HAL) (hal.dll)

2014-02-08 21:29:31 950

理解Windows内核模式与用户模式

内核层次架构windows程序运行分为内核模式和用户模式,内核模式可以访问所有的内存地址空间, 并且可以访问所有的CPU指令。一般程序运行在用户模式, 通过系统调用切换到内核模式执行系统功能,Windows系统通过这种方式来确保系统的安全和稳定。下面是内核的层次划分:硬件抽象层(Hardware Abstraction Layer) (HAL) (hal.dll)最底层隔离硬件的, 底层的第三...

2014-02-08 21:29:00 53

转载 手工搭建32位汇编语言程序开发环境

目标: 以创建一个简单的对话框程序为例搭建环境,目标是用到最少的资源,这样我们能够知道一个程序的来龙去脉。实现: 从Visual Studio 安装环境中拷贝 ML宏汇编器和LINK链接器;拷贝部分.h头文件和.lib链接库文件。分析: [工具]C和C++的编译器为CL.EXE,汇编语言的编译器为ML.EXE,这两个程序都能生成COFF格式的目标文件OBJ;然后用通用的

2014-02-08 21:27:03 1283

手工搭建32位汇编语言程序开发环境

目标: 以创建一个简单的对话框程序为例搭建环境,目标是用到最少的资源,这样我们能够知道一个程序的来龙去脉。实现: 从Visual Studio 安装环境中拷贝 ML宏汇编器和LINK链接器;拷贝部分.h头文件和.lib链接库文件。分析: [工具]C和C++的编译器为CL.EXE,汇编语言的编译器为ML.EXE,这两个程序都能生成COFF格式的目标文件OBJ;然后用通...

2014-02-08 21:27:00 48

转载 Windows内存与进程管理器底层分析

来源:https://www.xfocus.net/bbs/index.php?act=ST&f=2&t=58182内存与进程管理器==========================                                   But I fear tomorrow I'll be crying,                            

2014-02-08 21:26:18 3513

Windows内存与进程管理器底层分析

来源:https://www.xfocus.net/bbs/index.php?act=ST&f=2&t=58182内存与进程管理器========================== But I fear tomorrow I'll be crying, Yes I fear tomorrow I'll be crying.King Crimson'69 -E...

2014-02-08 21:26:00 42

转载 黑客常用WinAPI函数整理

黑客常用WinAPI函数整理 之前的博客写了很多关于Windows编程的内容,在Windows环境下的黑客必须熟练掌握底层API编程。为了使读者对黑客常用的Windows API有个更全面的了解以及方便日后使用API方法的查询,特将这些常用的API按照7大分类进行整理如下,希望对大家的学习有所帮助。一、进程创建进程:CreateProcess("C:\\windows\\n

2014-02-08 21:25:23 1182

黑客常用WinAPI函数整理

黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的内容,在Windows环境下的黑客必须熟练掌握底层API编程。为了使读者对黑客常用的Windows API有个更全面的了解以及方便日后使用API方法的查询,特将这些常用的API按照7大分类进行整理如下,希望对大家的学习有所帮助。一、进程创建进程:CreateProcess("C:\\windows\\no...

2014-02-08 21:25:00 63

转载 缓冲区溢出攻击

缓冲区溢出攻击 缓冲区溢出(Buffer Overflow)是计算机安全领域内既经典而又古老的话题。随着计算机系统安全性的加强,传统的缓冲区溢出攻击方式可能变得不再奏效,相应的介绍缓冲区溢出原理的资料也变得“大众化”起来。其中看雪的《0day安全:软件漏洞分析技术》一书将缓冲区溢出攻击的原理阐述得简洁明了。本文参考该书对缓冲区溢出原理的讲解,并结合实际的代码实例进行验证。不过即便如此,完成

2014-02-08 21:24:33 1747

缓冲区溢出攻击

缓冲区溢出攻击缓冲区溢出(Buffer Overflow)是计算机安全领域内既经典而又古老的话题。随着计算机系统安全性的加强,传统的缓冲区溢出攻击方式可能变得不再奏效,相应的介绍缓冲区溢出原理的资料也变得“大众化”起来。其中看雪的《0day安全:软件漏洞分析技术》一书将缓冲区溢出攻击的原理阐述得简洁明了。本文参考该书对缓冲区溢出原理的讲解,并结合实际的代码实例进行验证。不过即便如此,完成一...

2014-02-08 21:24:00 39

转载 如果一个程序跑10000次只失败一次,你会怎么调试?

CLR小组中存在着大量的回归测试,这些回归测试会定期执行来发现CLR中的Bug,Developer在Checkin之前,也需要执行这些测试的一部分(大概是10小时左右,如果全部跑的话估计要好几天)。这些测试对于保证CLR的质量是至关重要的。有时候,这些测试会偶尔失败,比如跑100次失败大概一到两次,有些极端的例子甚至是10000次才失败一次。像这种问题通常是很难调试的。在前面调试Bug的神兵利器:

2013-12-08 23:58:10 917

如果一个程序跑10000次只失败一次,你会怎么调试?

CLR小组中存在着大量的回归测试,这些回归测试会定期执行来发现CLR中的Bug,Developer在Checkin之前,也需要执行这些测试的一部分(大概是10小时左右,如果全部跑的话估计要好几天)。这些测试对于保证CLR的质量是至关重要的。有时候,这些测试会偶尔失败,比如跑100次失败大概一到两次,有些极端的例子甚至是10000次才失败一次。像这种问题通常是很难调试的。在前面调试Bug的神兵利...

2013-12-08 23:58:00 87

转载 调试Bug的神兵利器:通过WinDbg条件断点收集Log

前段时间花了几天一直在用WinDbg调试一个比较棘手的Bug。这个Bug是C# Team那边发现的,他们的Testcase跑大概10分钟左右会出一个在CLR内部的ASSERT。比较难调试的主要原因在于ASSERT表明一个全局的数据结构出现了问题,本来不应该用完的数组却已经用完了(因为按照设计,这个数组是边使用边清理的,是不会用完的)。初步想到的有下面几种方案来调试:1. 设置数据断点2.

2013-12-08 23:57:12 822

调试Bug的神兵利器:通过WinDbg条件断点收集Log

前段时间花了几天一直在用WinDbg调试一个比较棘手的Bug。这个Bug是C# Team那边发现的,他们的Testcase跑大概10分钟左右会出一个在CLR内部的ASSERT。比较难调试的主要原因在于ASSERT表明一个全局的数据结构出现了问题,本来不应该用完的数组却已经用完了(因为按照设计,这个数组是边使用边清理的,是不会用完的)。初步想到的有下面几种方案来调试:1. 设置数据断点2...

2013-12-08 23:57:00 35

转载 VC运行库版本不同导致链接.LIB静态库时发生重复定义问题的一个案例分析和总结

BackgroundMSDN中对于在不同的配置下Link的LIB作了说明:C Runtime Library:开关对应的库版本/MDMSVCRT.LIB多线程DLL的Release版本/MDdMSVCRTD.LIB多线程DLL的Debug版本

2013-12-08 23:56:02 821

VC运行库版本不同导致链接.LIB静态库时发生重复定义问题的一个案例分析和总结...

BackgroundMSDN中对于在不同的配置下Link的LIB作了说明:C Runtime Library:开关对应的库版本/MDMSVCRT.LIB多线程DLL的Release版本/MDdMSVCRTD.LIB多线程DLL的Debug版本/MT...

2013-12-08 23:56:00 65

SimplePointsReader

读取数据文件中的坐标点,并绘制显示 参见原文 http://blog.csdn.net/chinamming/article/details/16860051

2013-11-21

vtk基础编程-DistancePointToLine

vtk基础编程-DistancePointToLine 参见文章 http://blog.csdn.net/chinamming/article/details/16841503

2013-11-20

Chinamming的留言板

发表于 2020-01-02 最后回复 2020-04-24

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