博客园 - iosJohnson
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=10487
2013-03-01T13:06:14Z
iosJohnson
https://www.cnblogs.com/YukiJohnson/
feed.cnblogs.com
https://www.cnblogs.com/YukiJohnson/archive/2013/01/15/2861405.html
变长数组的处理 - iosJohnson
在C/C++中,定义数组时的长度要求是常量,即只能定义如下数组:1 #define N 1002 int a[N];3 4 or5 6 const int N = 100;7 int a[N];而在很多情况下,我们是无法预知数组的长度的,只有运行时读取相关信息时才知道,对于这种情况如何处理?一般而言,有两种比较通用的办法:1)STL的vector。 vector提供了一套完整的数据结构及方法,在无特殊要求的情况下,我个人认为是一个最好的选择1 std::vector<objType> vecArray;2 for(int i = 0; i < someValue; i++)3
2013-01-15T08:15:00Z
2013-01-15T08:15:00Z
iosJohnson
https://www.cnblogs.com/YukiJohnson/
【摘要】在C/C++中,定义数组时的长度要求是常量,即只能定义如下数组:1 #define N 1002 int a[N];3 4 or5 6 const int N = 100;7 int a[N];而在很多情况下,我们是无法预知数组的长度的,只有运行时读取相关信息时才知道,对于这种情况如何处理?一般而言,有两种比较通用的办法:1)STL的vector。 vector提供了一套完整的数据结构及方法,在无特殊要求的情况下,我个人认为是一个最好的选择1 std::vector<objType> vecArray;2 for(int i = 0; i < someValue; i++)3 <a href="https://www.cnblogs.com/YukiJohnson/archive/2013/01/15/2861405.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/YukiJohnson/archive/2013/01/05/2846856.html
MFC初步教程(三):菜单 - iosJohnson
菜单是MFC编程中非常重要的一种资源,在MFC中添加菜单有两种方式,一种是以资源的形式静态添加,另一种是动态添加,本文简洁说明第一种形式 ,其步骤如下(从SDK的角度看各种类之间的联系,更容易理解MFC框架):1 创建win32空项目;2 添加一个前述初步教程中所示的源代码文件3 选择菜单insert->resource->menu,添加一个菜单File,并添加一个子菜单New,编辑子菜单New的ID为:IDM_FILENEW4 选择Project --> Add To Project --> Files 将Script1.rc 和resource.h加入项目.代码如下
2013-01-05T14:43:00Z
2013-01-05T14:43:00Z
iosJohnson
https://www.cnblogs.com/YukiJohnson/
【摘要】菜单是MFC编程中非常重要的一种资源,在MFC中添加菜单有两种方式,一种是以资源的形式静态添加,另一种是动态添加,本文简洁说明第一种形式 ,其步骤如下(从SDK的角度看各种类之间的联系,更容易理解MFC框架):1 创建win32空项目;2 添加一个前述初步教程中所示的源代码文件3 选择菜单insert->resource->menu,添加一个菜单File,并添加一个子菜单New,编辑子菜单New的ID为:IDM_FILENEW4 选择Project --> Add To Project --> Files 将Script1.rc 和resource.h加入项目.代码如下 <a href="https://www.cnblogs.com/YukiJohnson/archive/2013/01/05/2846856.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/YukiJohnson/archive/2013/01/05/2846814.html
MFC初步教程(二) - iosJohnson
绘制简单的图形几乎是所有的VC教程中的必须内容,这里面涉及到几个概念,设备(device context),画刷(Pen)等。CDC是所有设备的父类,其子类包括CClientDC(仅在客户区绘制), CPaintDC, CWindowDC(可以在客户区和窗口非客户区绘制)等。所有继承于CWnd类的子类均可以构造设备类。#include <afxwin.h>class MFC_Tutorial_Window: public CFrameWnd{ CPoint m_startPoint; CPoint m_endPoint;public: MFC_Tutorial_Window() {
2013-01-05T14:16:00Z
2013-01-05T14:16:00Z
iosJohnson
https://www.cnblogs.com/YukiJohnson/
【摘要】绘制简单的图形几乎是所有的VC教程中的必须内容,这里面涉及到几个概念,设备(device context),画刷(Pen)等。CDC是所有设备的父类,其子类包括CClientDC(仅在客户区绘制), CPaintDC, CWindowDC(可以在客户区和窗口非客户区绘制)等。所有继承于CWnd类的子类均可以构造设备类。#include <afxwin.h>class MFC_Tutorial_Window: public CFrameWnd{ CPoint m_startPoint; CPoint m_endPoint;public: MFC_Tutorial_Window() { <a href="https://www.cnblogs.com/YukiJohnson/archive/2013/01/05/2846814.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/YukiJohnson/archive/2013/01/05/2846765.html
MFC初步教程(一) - iosJohnson
学习过很多语言以及环境,对于Java、C++、Qt等都很容易理解,并且能很快上手做项目,唯独对MFC一直浑浑噩噩,不太清楚,参与项目总是独立负责一块,与业务逻辑更相关,用std库的机会多,与GUI、Doc/View打交道的时间少,没有对其进行系统地学习。现在独立完成项目,各方面都要清楚,尤其觉得MFC是自己的一个短板,更觉得有系统一学的必要。一、用MFC创建窗口 MFC的目的是减轻程序员的工作量,让程序员专注于程序的逻辑而非一堆离散的SDK函数,其主要作用是将绝大部分常用的函数包装好,提供一个完整的框架。在MFC中,有两个类最为重要,一个是CWinApp,另一个是CFrameWnd ,前者负.
2013-01-05T13:33:00Z
2013-01-05T13:33:00Z
iosJohnson
https://www.cnblogs.com/YukiJohnson/
【摘要】学习过很多语言以及环境,对于Java、C++、Qt等都很容易理解,并且能很快上手做项目,唯独对MFC一直浑浑噩噩,不太清楚,参与项目总是独立负责一块,与业务逻辑更相关,用std库的机会多,与GUI、Doc/View打交道的时间少,没有对其进行系统地学习。现在独立完成项目,各方面都要清楚,尤其觉得MFC是自己的一个短板,更觉得有系统一学的必要。一、用MFC创建窗口 MFC的目的是减轻程序员的工作量,让程序员专注于程序的逻辑而非一堆离散的SDK函数,其主要作用是将绝大部分常用的函数包装好,提供一个完整的框架。在MFC中,有两个类最为重要,一个是CWinApp,另一个是CFrameWnd ,前者负. <a href="https://www.cnblogs.com/YukiJohnson/archive/2013/01/05/2846765.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/YukiJohnson/archive/2012/12/12/2814152.html
转:Java中的异常处理 - iosJohnson
转自:http://blog.csdn.net/pengchua/article/details/2610324一.异常介绍任何的异常都是Throwable类,并且在它之下包含两个字类Error / Exception,而Error仅在当在Java虚拟机中发生动态连接失败或其它的定位失败的时候,Java虚拟机抛出一个Error对象。典型的简易程序不捕捉或抛出Errors对象,你可能永远不会碰到需要实例化Error的应用,那就让我们关心一下Exception。Unchecked Exception.:包括 Error与RuntimeException. 这类异常都是RuntimeExceptio
2012-12-12T02:29:00Z
2012-12-12T02:29:00Z
iosJohnson
https://www.cnblogs.com/YukiJohnson/
【摘要】转自:http://blog.csdn.net/pengchua/article/details/2610324一.异常介绍任何的异常都是Throwable类,并且在它之下包含两个字类Error / Exception,而Error仅在当在Java虚拟机中发生动态连接失败或其它的定位失败的时候,Java虚拟机抛出一个Error对象。典型的简易程序不捕捉或抛出Errors对象,你可能永远不会碰到需要实例化Error的应用,那就让我们关心一下Exception。Unchecked Exception.:包括 Error与RuntimeException. 这类异常都是RuntimeExceptio <a href="https://www.cnblogs.com/YukiJohnson/archive/2012/12/12/2814152.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/YukiJohnson/archive/2012/12/11/2813717.html
Java中的序列问题-2 - iosJohnson
两篇文章,值得推荐:1 Java序列化高级认识 http://www.ibm.com/developerworks/cn/java/j-lo-serial/index.html2 关于 Java 对象序列化您不知道的 5 件事 http://www.ibm.com/developerworks/cn/java/j-5things1/index.html
2012-12-11T13:40:00Z
2012-12-11T13:40:00Z
iosJohnson
https://www.cnblogs.com/YukiJohnson/
【摘要】两篇文章,值得推荐:1 Java序列化高级认识 http://www.ibm.com/developerworks/cn/java/j-lo-serial/index.html2 关于 Java 对象序列化您不知道的 5 件事 http://www.ibm.com/developerworks/cn/java/j-5things1/index.html <a href="https://www.cnblogs.com/YukiJohnson/archive/2012/12/11/2813717.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/YukiJohnson/archive/2012/12/11/2813697.html
Java中的序列化问题 - iosJohnson
Java序列化是指将Java中的类对象状态以字节的形式保存,需要的时候可以解码获取,通常用于共享数据交互、网络通信等。在Java中,属于对象的状态才应该保存,因此,静态数据成员不能保存;如果不愿意保存某个变量,可以将此变量声明为transient;另外,并不是所有的对象都可以序列化,系统级的类对象如Thread、OutputStream、Socket等类及其子类对象是不可以序列化的。 要序列化某个对象,只需要类实现java.io.Serializable接口。如下例子: 1 package de.vogella.java.serilization; 2 3 import java.io.S..
2012-12-11T13:38:00Z
2012-12-11T13:38:00Z
iosJohnson
https://www.cnblogs.com/YukiJohnson/
【摘要】Java序列化是指将Java中的类对象状态以字节的形式保存,需要的时候可以解码获取,通常用于共享数据交互、网络通信等。在Java中,属于对象的状态才应该保存,因此,静态数据成员不能保存;如果不愿意保存某个变量,可以将此变量声明为transient;另外,并不是所有的对象都可以序列化,系统级的类对象如Thread、OutputStream、Socket等类及其子类对象是不可以序列化的。 要序列化某个对象,只需要类实现java.io.Serializable接口。如下例子: 1 package de.vogella.java.serilization; 2 3 import java.io.S.. <a href="https://www.cnblogs.com/YukiJohnson/archive/2012/12/11/2813697.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/YukiJohnson/archive/2012/12/10/2802903.html
Java学习中的不解 - iosJohnson
一直以来,都是用C,C++,C#开发程序,从事的也是编译器相关方面的研究与开发,最近在测试方面有些比较好的想法,想从实验的角度验证想法是否可行。但C系列里面没有相关的benchmark,只有Java有,所以转而学习Java。Java中的语法基本与C++一致,上手很容易,但是有些地方依然不太顺手,故而本文记录本人在开发Java程序过程中遇到的问题,作为笔记。1 参数传递问题。在Java中,参数传递没有C++中默认的传值以及传引用等相关标记,在Java中,内置类型对象参数采用传值方式,而类对象参数这采用引用传递。注意:Java中的String是类,而非内置对象;2 集合使用问题。在C++中,STL
2012-12-10T05:42:00Z
2012-12-10T05:42:00Z
iosJohnson
https://www.cnblogs.com/YukiJohnson/
【摘要】一直以来,都是用C,C++,C#开发程序,从事的也是编译器相关方面的研究与开发,最近在测试方面有些比较好的想法,想从实验的角度验证想法是否可行。但C系列里面没有相关的benchmark,只有Java有,所以转而学习Java。Java中的语法基本与C++一致,上手很容易,但是有些地方依然不太顺手,故而本文记录本人在开发Java程序过程中遇到的问题,作为笔记。1 参数传递问题。在Java中,参数传递没有C++中默认的传值以及传引用等相关标记,在Java中,内置类型对象参数采用传值方式,而类对象参数这采用引用传递。注意:Java中的String是类,而非内置对象;2 集合使用问题。在C++中,STL <a href="https://www.cnblogs.com/YukiJohnson/archive/2012/12/10/2802903.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/YukiJohnson/archive/2012/12/05/2802450.html
log4j配置时的位置问题 - iosJohnson
捣鼓log4j,要记录一些重要的信息,但是在配置的时候总是出错,错误信息为:log4j:ERROR Could not read configuration file [\log4j.properties].java.io.FileNotFoundException: log4j.properties (系统找不到指定的文件。)用代码 File f = new File("/log4j.properties"); if(f.exists()) { System.out.println("OK"); } else { System.out.println(
2012-12-05T01:15:00Z
2012-12-05T01:15:00Z
iosJohnson
https://www.cnblogs.com/YukiJohnson/
【摘要】捣鼓log4j,要记录一些重要的信息,但是在配置的时候总是出错,错误信息为:log4j:ERROR Could not read configuration file [\log4j.properties].java.io.FileNotFoundException: log4j.properties (系统找不到指定的文件。)用代码 File f = new File("/log4j.properties"); if(f.exists()) { System.out.println("OK"); } else { System.out.println( <a href="https://www.cnblogs.com/YukiJohnson/archive/2012/12/05/2802450.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/YukiJohnson/archive/2012/11/15/2772386.html
make使用简介 - iosJohnson
make工具用以简化编译过程,当编译一个包括成百上千个文件的大型项目时,逐个文件编译繁琐且低效,并且当更新某个文件之后,还需要重新再编译一次。makefile文件正是为解决此类问题而诞生的。现在绝大多数IDE,包括Window下的VS等IDE均使用makefile文件,只不过由系统自动生成,编程人员感觉不到而已。在linux环境下,理解简单的makefile文件,能使用make工具,可以加速开发过程以及编译安装源码文件的痛苦。通常情况下,如果在某个目录下运行:make则自动执行此目录下的makefile文件(或者Makefile文件),如果在此目录下有多个Makefile文件,则运行如下命令可
2012-11-15T14:32:00Z
2012-11-15T14:32:00Z
iosJohnson
https://www.cnblogs.com/YukiJohnson/
【摘要】make工具用以简化编译过程,当编译一个包括成百上千个文件的大型项目时,逐个文件编译繁琐且低效,并且当更新某个文件之后,还需要重新再编译一次。makefile文件正是为解决此类问题而诞生的。现在绝大多数IDE,包括Window下的VS等IDE均使用makefile文件,只不过由系统自动生成,编程人员感觉不到而已。在linux环境下,理解简单的makefile文件,能使用make工具,可以加速开发过程以及编译安装源码文件的痛苦。通常情况下,如果在某个目录下运行:make则自动执行此目录下的makefile文件(或者Makefile文件),如果在此目录下有多个Makefile文件,则运行如下命令可 <a href="https://www.cnblogs.com/YukiJohnson/archive/2012/11/15/2772386.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/YukiJohnson/archive/2012/10/27/2741836.html
X86汇编快速入门 - iosJohnson
本文翻译自:http://www.cs.virginia.edu/~evans/cs216/guides/x86.html本文描述基本的32位X86汇编语言的一个子集,其中涉及汇编语言的最核心部分,包括寄存器结构,数据表示,基本的操作指令(包括数据传送指令、逻辑计算指令、算数运算指令),以及函数的调用规则。个人认为:在理解了本文后,基本可以无障碍地阅读绝大部分标准X86汇编程序。当然,更复杂的指令请参阅Intel相关文档。1 寄存器.主要寄存器如下图所示:X86处理器中有8个32位的通用寄存器。由于历史的原因,EAX通常用于计算,ECX通常用于循环变量计数。ESP和EBP有专门用途,ESP指示
2012-10-27T06:01:00Z
2012-10-27T06:01:00Z
iosJohnson
https://www.cnblogs.com/YukiJohnson/
【摘要】本文翻译自:http://www.cs.virginia.edu/~evans/cs216/guides/x86.html本文描述基本的32位X86汇编语言的一个子集,其中涉及汇编语言的最核心部分,包括寄存器结构,数据表示,基本的操作指令(包括数据传送指令、逻辑计算指令、算数运算指令),以及函数的调用规则。个人认为:在理解了本文后,基本可以无障碍地阅读绝大部分标准X86汇编程序。当然,更复杂的指令请参阅Intel相关文档。1 寄存器.主要寄存器如下图所示:X86处理器中有8个32位的通用寄存器。由于历史的原因,EAX通常用于计算,ECX通常用于循环变量计数。ESP和EBP有专门用途,ESP指示 <a href="https://www.cnblogs.com/YukiJohnson/archive/2012/10/27/2741836.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/YukiJohnson/archive/2012/10/14/2723363.html
网络编程学习2-套接字编程简介 - iosJohnson
主要记录套接字的基本结构及相关常用函数1 套接字地址结构-IPv4 1 struct in_addr{ 2 in_addr_t s_addr; // 32位的IPv4地址 3 } 4 5 struct socketaddr_in{ 6 uint_8 sin_len; // 长度 7 sa_family sin_family; //协议族,IPv4为AF_INET 8 in_port_t sin_port; // 端口号 9 struct in_addr sin_addr; //IPv4地址...
2012-10-14T12:53:00Z
2012-10-14T12:53:00Z
iosJohnson
https://www.cnblogs.com/YukiJohnson/
【摘要】主要记录套接字的基本结构及相关常用函数1 套接字地址结构-IPv4 1 struct in_addr{ 2 in_addr_t s_addr; // 32位的IPv4地址 3 } 4 5 struct socketaddr_in{ 6 uint_8 sin_len; // 长度 7 sa_family sin_family; //协议族,IPv4为AF_INET 8 in_port_t sin_port; // 端口号 9 struct in_addr sin_addr; //IPv4地址... <a href="https://www.cnblogs.com/YukiJohnson/archive/2012/10/14/2723363.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/YukiJohnson/archive/2012/10/14/2723341.html
网络编程学习记录-1 - iosJohnson
本系列学习笔记记录自己在学习Unix网络编程方面的点滴。1 协议:IPv4, IPv6,TCP:可靠传输。建立连接时,三路握手原理,发送SYN分节;结束时,某个应用进程首先调用close,该端的TCP发送一个FIN分节,表示数据发送完毕,每个方向均需要一个FIN和ACK确认结束。TCP选项:1)MSS,最大分节大小;2)窗口规模选项;3)时间戳选项。 TIME_WAIT状态理解??? UDP:不可靠传输SCTP(stream control transmission protocol),是一个全双工关联的面向连接的协议。SCTP是多宿的,每个关联的两端均涉及一组IP地址和一个端口号。建立连接的
2012-10-14T12:35:00Z
2012-10-14T12:35:00Z
iosJohnson
https://www.cnblogs.com/YukiJohnson/
【摘要】本系列学习笔记记录自己在学习Unix网络编程方面的点滴。1 协议:IPv4, IPv6,TCP:可靠传输。建立连接时,三路握手原理,发送SYN分节;结束时,某个应用进程首先调用close,该端的TCP发送一个FIN分节,表示数据发送完毕,每个方向均需要一个FIN和ACK确认结束。TCP选项:1)MSS,最大分节大小;2)窗口规模选项;3)时间戳选项。 TIME_WAIT状态理解??? UDP:不可靠传输SCTP(stream control transmission protocol),是一个全双工关联的面向连接的协议。SCTP是多宿的,每个关联的两端均涉及一组IP地址和一个端口号。建立连接的 <a href="https://www.cnblogs.com/YukiJohnson/archive/2012/10/14/2723341.html" target="_blank">阅读全文</a>