<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Chinamming的专栏]]></title><description><![CDATA[三维图形, COM技术, VTK重建, CAD/CAE二次开发]]></description><link>https://blog.youkuaiyun.com/Chinamming</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Chinamming]]></copyright><item><title><![CDATA[有了WCF，Socket是否已人老珠黄？]]></title><link>https://blog.youkuaiyun.com/Chinamming/article/details/18995513</link><guid>https://blog.youkuaiyun.com/Chinamming/article/details/18995513</guid><author>Chinamming</author><pubDate>Sat, 08 Feb 2014 21:54:22 +0800</pubDate><description><![CDATA[1. Socket相关背景    
　　Socket，中文译为“套接字”，最早在UNIX中引入并得到广泛应用，后来微软在设计Windows时引入了UNIX中的这个概念和相应的设计理念，并针对Windows的特性略作调整，形成了Windows平台上的Socket，简称为“WinSock”，并为开发者提供了一整套的API，称为“Windows WinSock Win32 API ”。
　　WinS]]></description><category></category></item><item><title><![CDATA[有了WCF，Socket是否已人老珠黄？]]></title><link>https://blog.youkuaiyun.com/Chinamming/article/details/84524728</link><guid>https://blog.youkuaiyun.com/Chinamming/article/details/84524728</guid><author>Chinamming</author><pubDate>Sat, 08 Feb 2014 21:54:00 +0800</pubDate><description><![CDATA[
1. Socket相关背景 
　　Socket，中文译为“套接字”，最早在UNIX中引入并得到广泛应用，后来微软在设计Windows时引入了UNIX中的这个概念和相应的设计理念，并针对Windows的特性略作调整，形成了Windows平台上的Socket，简称为“WinSock”，并为开发者提供了一整套的API，称为“Windows WinSock Win32 API ”。
　　WinSo...]]></description><category></category></item><item><title><![CDATA[分享8年开发经验，浅谈程序员职业规划]]></title><link>https://blog.youkuaiyun.com/Chinamming/article/details/18995449</link><guid>https://blog.youkuaiyun.com/Chinamming/article/details/18995449</guid><author>Chinamming</author><pubDate>Sat, 08 Feb 2014 21:51:29 +0800</pubDate><description><![CDATA[序：

在中国有很多人都认为IT行业是吃青春饭的，如果过了30岁就很难有机会再发展下去！其实现实并不是这样子的，在下从事.NET及JAVA方面的开发的也有8年的时间了，在这里在下想凭借自己的亲身经历，与大家一起探讨一下。
明确入行的目的

很多人干IT这一行都冲着“收入高”这一点的，因为只要学会一点HTML、DIV+CSS，要做一个页面开发人员并不是一件难事，而且做一个页面开发人员更容易]]></description><category></category></item><item><title><![CDATA[分享8年开发经验，浅谈程序员职业规划]]></title><link>https://blog.youkuaiyun.com/Chinamming/article/details/84524726</link><guid>https://blog.youkuaiyun.com/Chinamming/article/details/84524726</guid><author>Chinamming</author><pubDate>Sat, 08 Feb 2014 21:51:00 +0800</pubDate><description><![CDATA[


序：

在中国有很多人都认为IT行业是吃青春饭的，如果过了30岁就很难有机会再发展下去！其实现实并不是这样子的，在下从事.NET及JAVA方面的开发的也有8年的时间了，在这里在下想凭借自己的亲身经历，与大家一起探讨一下。
明确入行的目的

很多人干IT这一行都冲着“收入高”这一点的，因为只要学会一点HTML、DIV+CSS，要做一个页面开发人员并不是一件难事，而且做一个页面开...]]></description><category></category></item><item><title><![CDATA[理解 Windows API 调用过程]]></title><link>https://blog.youkuaiyun.com/Chinamming/article/details/18995337</link><guid>https://blog.youkuaiyun.com/Chinamming/article/details/18995337</guid><author>Chinamming</author><pubDate>Sat, 08 Feb 2014 21:48:31 +0800</pubDate><description><![CDATA[我们在应用层调用一个Win32 API, 系统内部究竟是如何执行的， 它是如何从用户态进入到内核态的呢 ？



对于每层一些概念的解释，这里不详述了，具体可以参考理解Windows内核模式与用户模式.

以Kernel32里的 CreateProcess 为例， 内部会调用ntdll.dll里导出的NtCreateProcess， ntdll.dll通过一个中断请求int
 2Eh]]></description><category></category></item><item><title><![CDATA[理解 Windows API 调用过程]]></title><link>https://blog.youkuaiyun.com/Chinamming/article/details/84524725</link><guid>https://blog.youkuaiyun.com/Chinamming/article/details/84524725</guid><author>Chinamming</author><pubDate>Sat, 08 Feb 2014 21:48:00 +0800</pubDate><description><![CDATA[我们在应用层调用一个Win32 API, 系统内部究竟是如何执行的， 它是如何从用户态进入到内核态的呢 ？对于每层一些概念的解释，这里不详述了，具体可以参考理解Windows内核模式与用户模式.以Kernel32里的CreateProcess 为例， 内部会调用ntdll.dll里导出的NtCreateProcess，ntdll.dll通过一个中断请求int
 2Eh（Sysenter）进入内核...]]></description><category></category></item><item><title><![CDATA[落伍的感觉]]></title><link>https://blog.youkuaiyun.com/Chinamming/article/details/18995107</link><guid>https://blog.youkuaiyun.com/Chinamming/article/details/18995107</guid><author>Chinamming</author><pubDate>Sat, 08 Feb 2014 21:40:22 +0800</pubDate><description><![CDATA[作为一个传统的Win32开发程序员，感觉这些年技术变化可真快，总结一下主要体现在以下几方面：


     (1)互联网应用的重新崛起
     从Google到阿里巴巴，再到Facebook, 从以前的博客到现在的微博，Web正在影响越来越多人的生活。越来越多的开发人员参与到Web开发中，从前端的Web2.0/Web3.0,HTML5， 到后台的云计算,云存储,云框架，各种新技术层出不穷]]></description><category></category></item><item><title><![CDATA[落伍的感觉]]></title><link>https://blog.youkuaiyun.com/Chinamming/article/details/84524724</link><guid>https://blog.youkuaiyun.com/Chinamming/article/details/84524724</guid><author>Chinamming</author><pubDate>Sat, 08 Feb 2014 21:40:00 +0800</pubDate><description><![CDATA[  作为一个传统的Win32开发程序员，感觉这些年技术变化可真快，总结一下主要体现在以下几方面：
  (1)互联网应用的重新崛起
  从Google到阿里巴巴，再到Facebook, 从以前的博客到现在的微博，Web正在影响越来越多人的生活。越来越多的开发人员参与到Web开发中，从前端的Web2.0/Web3.0,HTML5， 到后台的云计算,云存储,云框架，各种新技术层出不穷。
  (2)...]]></description><category></category></item><item><title><![CDATA[如何学习WindDbg]]></title><link>https://blog.youkuaiyun.com/Chinamming/article/details/18995071</link><guid>https://blog.youkuaiyun.com/Chinamming/article/details/18995071</guid><author>Chinamming</author><pubDate>Sat, 08 Feb 2014 21:38:11 +0800</pubDate><description><![CDATA[作为一名Windows平台上的C/C++开发人员，我们有N个学习WinDbg的理由: 
有些Bug只有在客户和QA的机器上才能重现，我们不可能在他们的机器上装一个VC吧
WinDbg可以让我们方便的保存和分析Dump文件
WinDbg的调试功能比VC强大的多，比如它有强大的API断点和条件断点
调试内核和驱动，我们只能用WinDbg
用WinDbg可以让你更深入的理解系统，理解计算机，用]]></description><category></category></item><item><title><![CDATA[如何学习WindDbg]]></title><link>https://blog.youkuaiyun.com/Chinamming/article/details/84524722</link><guid>https://blog.youkuaiyun.com/Chinamming/article/details/84524722</guid><author>Chinamming</author><pubDate>Sat, 08 Feb 2014 21:38:00 +0800</pubDate><description><![CDATA[作为一名Windows平台上的C/C++开发人员，我们有N个学习WinDbg的理由:
有些Bug只有在客户和QA的机器上才能重现，我们不可能在他们的机器上装一个VC吧
WinDbg可以让我们方便的保存和分析Dump文件
WinDbg的调试功能比VC强大的多，比如它有强大的API断点和条件断点
调试内核和驱动，我们只能用WinDbg
用WinDbg可以让你更深入的理解系统，理解计算机，用V...]]></description><category></category></item><item><title><![CDATA[理解ATL中的一些汇编代码]]></title><link>https://blog.youkuaiyun.com/Chinamming/article/details/18995043</link><guid>https://blog.youkuaiyun.com/Chinamming/article/details/18995043</guid><author>Chinamming</author><pubDate>Sat, 08 Feb 2014 21:37:10 +0800</pubDate><description><![CDATA[我们知道ATL(活动模板库)是一套很小巧高效的COM开发库，它本身的核心文件其实没几个，COM相关的(主要是atlbase.h, atlcom.h)，另外还有一个窗口相关的(atlwin.h), 所以拿来学习应该是很方便的。但是因为ATL的代码充满了模板和宏，内部还夹杂着汇编，所以如果没有比较丰富的C++模板和系统底层的知识，一般人会看得一头雾水。

下面我们主要分析一下ATL中的一些汇编代码]]></description><category></category></item><item><title><![CDATA[理解ATL中的一些汇编代码]]></title><link>https://blog.youkuaiyun.com/Chinamming/article/details/84524721</link><guid>https://blog.youkuaiyun.com/Chinamming/article/details/84524721</guid><author>Chinamming</author><pubDate>Sat, 08 Feb 2014 21:37:00 +0800</pubDate><description><![CDATA[

我们知道ATL(活动模板库)是一套很小巧高效的COM开发库，它本身的核心文件其实没几个，COM相关的(主要是atlbase.h, atlcom.h)，另外还有一个窗口相关的(atlwin.h), 所以拿来学习应该是很方便的。但是因为ATL的代码充满了模板和宏，内部还夹杂着汇编，所以如果没有比较丰富的C++模板和系统底层的知识，一般人会看得一头雾水。下面我们主要分析一下ATL中的一些汇编代码。...]]></description><category></category></item><item><title><![CDATA[C++中实现回调机制的几种方式]]></title><link>https://blog.youkuaiyun.com/Chinamming/article/details/18995021</link><guid>https://blog.youkuaiyun.com/Chinamming/article/details/18995021</guid><author>Chinamming</author><pubDate>Sat, 08 Feb 2014 21:36:03 +0800</pubDate><description><![CDATA[（1）Callback方式
Callback的本质是设置一个函数指针进去，然后在需要需要触发某个事件时调用该方法, 比如Windows的窗口消息处理函数就是这种类型。

比如下面的示例代码，我们在Download完成时需要触发一个通知外面的事件：

typedef void (__stdcall *DownloadCallback)(const char* pURL, bool bOK)]]></description><category></category></item><item><title><![CDATA[C++中实现回调机制的几种方式]]></title><link>https://blog.youkuaiyun.com/Chinamming/article/details/84524718</link><guid>https://blog.youkuaiyun.com/Chinamming/article/details/84524718</guid><author>Chinamming</author><pubDate>Sat, 08 Feb 2014 21:36:00 +0800</pubDate><description><![CDATA[
（1）Callback方式
Callback的本质是设置一个函数指针进去，然后在需要需要触发某个事件时调用该方法, 比如Windows的窗口消息处理函数就是这种类型。
比如下面的示例代码，我们在Download完成时需要触发一个通知外面的事件：
typedefvoid(__stdcall*DownloadCallback)(constchar*pURL,boolbOK);voidDown...]]></description><category></category></item><item><title><![CDATA[C/C++中可变参数的原理]]></title><link>https://blog.youkuaiyun.com/Chinamming/article/details/18995007</link><guid>https://blog.youkuaiyun.com/Chinamming/article/details/18995007</guid><author>Chinamming</author><pubDate>Sat, 08 Feb 2014 21:35:35 +0800</pubDate><description><![CDATA[以前只是知道可变参数怎么用，但是一直对它的原理是似懂非懂，现在对计算机有了比较深刻的认识之后，回头再看，豁然开朗。

要理解可变参数，首先要理解函数调用约定， 为什么只有__cdecl的调用约定支持可变参数，而__stdcall就不支持?

实际上__cdecl和__stdcall函数参数都是从右到左入栈，它们的区别在于由谁来清栈，__cdecl由外部调用函数清栈，而__stdcall由被]]></description><category></category></item><item><title><![CDATA[C/C++中可变参数的原理]]></title><link>https://blog.youkuaiyun.com/Chinamming/article/details/84524717</link><guid>https://blog.youkuaiyun.com/Chinamming/article/details/84524717</guid><author>Chinamming</author><pubDate>Sat, 08 Feb 2014 21:35:00 +0800</pubDate><description><![CDATA[
以前只是知道可变参数怎么用，但是一直对它的原理是似懂非懂，现在对计算机有了比较深刻的认识之后，回头再看，豁然开朗。
要理解可变参数，首先要理解函数调用约定， 为什么只有__cdecl的调用约定支持可变参数，而__stdcall就不支持?
实际上__cdecl和__stdcall函数参数都是从右到左入栈，它们的区别在于由谁来清栈，__cdecl由外部调用函数清栈，而__stdcall由被调用...]]></description><category></category></item><item><title><![CDATA[理解程序内存]]></title><link>https://blog.youkuaiyun.com/Chinamming/article/details/18994987</link><guid>https://blog.youkuaiyun.com/Chinamming/article/details/18994987</guid><author>Chinamming</author><pubDate>Sat, 08 Feb 2014 21:34:38 +0800</pubDate><description><![CDATA[内存对很多人来说感觉是个很熟悉的东西，因为我们在用VC调试程序时，很多时候都会察看内存中变量的值。但是，很多时候我们的思维也就因此局限在有源码的模块，当遇到一些跨模块或是没有源代码的Bug，我们还是无从下手。因此，很有必要我们要对整个程序内存有个比较全局性的认识，这样遇到任何问题，你都能从容面对。

我这里以32位的程序为例，我们知道32位程序总共有4G内存空间，其中低2G是用户地址空间，高2]]></description><category></category></item><item><title><![CDATA[怎样才算会一门编程语言]]></title><link>https://blog.youkuaiyun.com/Chinamming/article/details/18994975</link><guid>https://blog.youkuaiyun.com/Chinamming/article/details/18994975</guid><author>Chinamming</author><pubDate>Sat, 08 Feb 2014 21:34:01 +0800</pubDate><description><![CDATA[今天， 同事问我会不会Python， 我犹豫了一下：不会。
 



实际上我曾经学习过这个语言，当时还用它写了些小工具， 可现在我对这个语言的印象只剩下它那特殊的缩进格式了。
 



由此思考怎样才算会一门语言？我想每个程序员都接触过多门语言 ， 那么究竟怎样才算会这门语言了呢？ 
 



会一门语言， 当需要它时， 应该能很快用该语言解决某个问题， 这个是最基]]></description><category></category></item><item><title><![CDATA[怎样才算会一门编程语言]]></title><link>https://blog.youkuaiyun.com/Chinamming/article/details/84524716</link><guid>https://blog.youkuaiyun.com/Chinamming/article/details/84524716</guid><author>Chinamming</author><pubDate>Sat, 08 Feb 2014 21:34:00 +0800</pubDate><description><![CDATA[




今天， 同事问我会不会Python， 我犹豫了一下：不会。





实际上我曾经学习过这个语言，当时还用它写了些小工具， 可现在我对这个语言的印象只剩下它那特殊的缩进格式了。





由此思考怎样才算会一门语言？我想每个程序员都接触过多门语言 ， 那么究竟怎样才算会这门语言了呢？





会一门语言， 当需要它时， 应该能很快用该语言解决某个...]]></description><category></category></item><item><title><![CDATA[理解程序内存]]></title><link>https://blog.youkuaiyun.com/Chinamming/article/details/84524714</link><guid>https://blog.youkuaiyun.com/Chinamming/article/details/84524714</guid><author>Chinamming</author><pubDate>Sat, 08 Feb 2014 21:34:00 +0800</pubDate><description><![CDATA[
内存对很多人来说感觉是个很熟悉的东西，因为我们在用VC调试程序时，很多时候都会察看内存中变量的值。但是，很多时候我们的思维也就因此局限在有源码的模块，当遇到一些跨模块或是没有源代码的Bug，我们还是无从下手。因此，很有必要我们要对整个程序内存有个比较全局性的认识，这样遇到任何问题，你都能从容面对。
我这里以32位的程序为例，我们知道32位程序总共有4G内存空间，其中低2G是用户地址空间，高2...]]></description><category></category></item></channel></rss>