自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(243)
  • 资源 (6)
  • 收藏
  • 关注

原创 尊重工程师的时代终将到来

今天终于看到一位勇士为我们工程师发声,为这位女侠点赞,勇士也。希望中国的工程师早日得到该有的尊重。https://money.163.com/19/1101/09/ESSTN9RD00259DLP.html...

2019-11-02 22:22:24 483

转载 C#内存泄漏:Event内存泄漏

前言内存泄漏是指:当一块内存被分配后,被丢弃,没有任何实例指针指向这块内存, 并且这块内存不会被GC视为垃圾进行回收。这块内存会一直存在,直到程序退出。C#是托管型代码,其内存的分配和释放都是由CLR负责,当一块内存没有任何实例引用时,GC会负责将其回收。既然没有任何实例引用的内存会被GC回收,那么内存泄漏是如何发生的?内存泄漏示例为了演示内存泄漏是如何发生的,我们来看一段代码...

2018-11-26 16:26:54 1853

转载 针孔相机拍摄的图像坐标和空间点的对应关系

转自:http://wiki.opencv.org.cn/index.php/Cv照相机定标和三维重建http://blog.csdn.net/lixianjun913/article/details/10032019摄像机标定------标定原理一:摄像机成像原理        摄像机成像模型一般有三种:透镜投影模型(小孔摄像机模型)、正交投影模型和透视投影模型

2017-10-07 22:17:34 1865

转载 理解c#中的闭包

引用:http://www.cnblogs.com/jiejie_peng/p/3701070.html闭包的概念内层的函数可以引用包含在它外层的函数的变量,即使外层函数的执行已经终止。但该变量提供的值并非变量创建时的值,而是在父函数范围内的最终值。闭包的优点使用闭包,我们可以轻松的访问外层函数定义的变量,这在匿名方法中普遍使用。比如有如下场景,在winform

2017-08-26 20:06:41 679

转载 c# 闭包

引用 http://www.cnblogs.com/zhouandke/p/5870257.html1. 首先要说明的是, delegate 被编译器 编译成一个class, 所以才能传来传去(具体参考 《CLR via C#》第四版), 所以 Action、Func也是如此2. 在C#中,原来闭包只是编译器玩的花招而已,它仍然没有脱离.NET对象生命周期的规则,它将需要修改作用域

2017-08-26 20:02:04 1584

转载 c# delegate

最近换了份新工作,开发的重心从我最爱的c++转移到c#了。以前虽然说也写过c#的代码,但是现在发现对c#的理解和使用还是比较初级,有必要进一步学些下。C# Delegatedelegate是C#中的一种类型,它实际上是一个能够持有对某个方法的引用的类。与其它的类不同,delegate类能够拥有一个签名(signature),并且它只能持有与它的签名相匹配

2017-08-26 17:57:13 1504

原创 将IP地址转换为二进制表示

string convert(char* cur, int size) { char byte[10] = {0}; memcpy(byte, cur - size, size); unsigned int value = atoi(byte); char final_value[9] = {0}; for (int i = 0; i < 8; i++) {

2017-03-06 15:51:46 8055

原创 c# 托盘程序编程

先后在C# Windos Form和WPF项目中涉及到了托盘编程,最近闲来总结了一下。C# Form通过标准的NotifyIconEx控件:弹出tooltip,可以直接通过Shell_NotifyIcon为标准的tooltip设置了szTip值来弹出标准的tooltip(当鼠标放到状态栏上的托盘图标上时弹出);弹出气泡,可以直接通过Shell_NotifyIcon为标准

2017-02-27 12:50:29 877

原创 shared_ptr构造函数

http://www.cplusplus.com/reference/memory/shared_ptr/shared_ptr/default (1) constexpr shared_ptr() noexcept;from null pointer (2) constexpr shared_ptr(nullptr_t) : shared_ptr() {}from pointer (3

2017-01-17 20:24:41 6350

原创 类型操作符重载

c++除了可以重载运算操作符,还可以重载类型操作符。operator TypeName(), 类型操作符,重载了此类操作符后,可以将Class类型的object当作TypeName类型的数据来使用。即相当于是一个隐式的类型转换,可以在需要TypeName类型的地方隐式地将object转换为TypeName类型(通过调用Class重载的的类型操作符operator TypeName())。

2017-01-16 15:27:46 437

转载 python中 __name__及__main()__的妙处

#hello.pydef sayHello(): str="hello" print(str);if __name__ == "__main__": print ('This is main of module "hello.py"') sayHello()python作为一种脚本语言,我们用python写的各个module都可以包含以上那

2017-01-13 13:20:50 385

原创 0/1背包问题

背包问题确实是一个让人有点费解的问题,它属于一种动态规划算法。以前确实也没有完全真正理解过这个算法,最近回头仔细品味,自觉有点心得领悟。将书本上的此算法根据自己的理解稍加整理,以一种更适合让人理解的方式呈现出来。#include<stdio.h>const int N=100;int limitw;int totv;int maxv;int option[N...

2016-10-17 18:30:46 404

转载 HTTP协议

HTTPHTTP是Hyper Text Transfer Protocol,超文本传输协议;当我们想浏览一个网站的时候,只要在浏览器的地址栏里输入网站的地址就可以了,例如http://www.microsoft.com,但是在浏览...w.microsoft.com ,你知道为什么会多出一个“http”吗?(1)HTTP协议是什么我们在浏览器的地址栏里输入的网站地址叫做

2016-10-13 18:13:59 1204

转载 enable_from_this方法的使用与陷阱

enable_from_this 的使用与实现原理说明:shared_from_this()是enable_shared_from_this的成员函数,返回shared_ptr;注意的是,这个函数仅在shared_ptr的构造函数被调用之后才能使用。原因是enable_shared_from_this::weak_ptr并不在构造函数中设置,而是在shared_ptr的构造函数

2016-10-13 14:44:39 3365 1

转载 C++ boost库----share_from_this类的作用和实现原理

使用boost库时,经常会看到如下的类class A:public enable_share_from_this在什么情况下要使类A继承enable_share_from_this?使用场合:当类A被share_ptr管理,且在类A的成员函数里需要把当前类对象作为参数传给其他函数时,就需要传递一个指向自身的share_ptr。我们就使类A继承enable_share_from_th

2016-10-13 14:41:07 588

原创 C++ 全局函数std::getline

经常会用到getline来读取文件,但是发现对于c和c++的getline之前没有一个很深入的认识,这里借鉴网上的一些资料总结一下。1、在标准C语言中,getline函数是不存在的。在gcc编译器中,对标准c库进行了扩展,加入了一个getline函数。该函数的定义如下:       #include ssize_t getline(char **l

2016-08-22 14:53:55 13794

转载 获取struct 中的member variable 的offset的宏定义

转自:http://www.linuxidc.com/Linux/2013-01/78004.htm1.offset宏讲解#defineoffsetof(TYPE, MEMBER) ((size_t) &((TYPE*)0)->MEMBER)对这个宏的讲解我们大致可以分为以下4步进行讲解:1>((TYPE *)0 )  0地址强制 "转换"为 TYPE结构类型的指针

2016-06-16 10:52:20 905

转载 C++和双重检查锁定模式(DCLP)的风险

转自:http://blog.jobbole.com/86392/多线程其实就是指两个任务一前一后或者同时发生。1 简介当你在网上搜索设计模式的相关资料时,你一定会找到最常被提及的一个模式:单例模式(Singleton)。然而,当你尝试在项目中使用单例模式时,一定会遇到一个很重要的限制:若使用传统的实现方法(我们会在下文解释如何实现),单例模式是非线程安全的。程序员们为

2016-06-13 15:18:45 4751 5

转载 C++ Singleton模式之线程安全

转自:http://blog.csdn.net/insistgogo/article/details/9412863定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。应用场景:比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。

2016-06-13 15:09:19 1972

转载 RSA密钥长度、明文长度和密文长度

本文介绍RSA加解密中必须考虑到的密钥长度、明文长度和密文长度问题,对第一次接触RSA的开发人员来说,RSA算是比较复杂的算法,天缘以后还会补充几篇RSA基础知识专题文章,用最简单最通俗的语言描述RSA,让各位了解RSA算法本身其实也很简单,RSA的复杂度是因为数学家把效率和安全也考虑进去的缘故。本文先只谈密钥长度、明文长度和密文长度的概念知识,RSA的理论及示例等以后再谈。提到密钥,我们

2016-06-12 16:35:29 4840

原创 c++代码通过JNI调用Java代码时用到的签名信息如何获取

大家都知道,如果在c++里通过JNI的方式调用Java代码时,需要用到java类和类成员方法的签名信息。但是这些签名信息的可读性确实太差了,如果要自己人工来根据Java类或者类成员方法来写这些签名信息那确实是一件非常痛苦的事情。那有办法能简单地得到这些Java类和成员方法的签名信息吗?有的,下面我就介绍下如何获取签名信息。1、编译Java代码,生成中间代码class文件2、在cmd中切换到

2016-05-18 10:58:23 992

原创 Android Service

Android Service 分本地service和remote service, 前者和调用者在一个进程内,使用方法很简单,后者和调用者不在同一个进程。1. remote service如何拿到对应的IBinder对于remote service,client端可以用bindService()绑定到一个service.Android系统调用service的onBind(

2016-04-23 23:51:02 380

原创 Binder通信

AIDL 文件: package com.test.demo; interface ITestService { int Add(); } Build Java工程生成ITestService.java文件:/* * This file is auto-generated. DO

2016-04-23 21:27:35 531

转载 c++ 前置++与后置++的区别

用C++编程的都知道,C++提供了一个非常强大的操作符重载机制,利用操作符重载,我们可以为我们自定义的类增加更多非常有用的功能。不过,C++也有限制,就是当我们为自定义的类重载操作符时,重载操作符的含义应该跟内置类型一样,比如,你不能通过重载+号操作符来实现两个数相乘的运算,实现需要是两个数相加的运算。本篇,我重点介绍下重载前置++和后置++的区别(前置--跟后置--类似)。  我们知道,写f

2016-04-21 16:42:18 1308

原创 Windows上通过程序写入回车字符

Windows上,对于含有\n回车字符的字符串,通过程序以二进制和文本两种方式写入到文件里的结果是不一样的。 如果是通过程序,以文本的方式向文件中写入'\n'字符,windows会自动将'\n'字符保存为'\r\n';如果以二进制格式打开文件写入,则直接保存为'\n'字符。

2015-04-28 10:51:30 1121

转载 C++中虚函数工作原理和(虚)继承类的内存占用大小计算

转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/7883531一、虚函数的工作原理      虚函数的实现要求对象携带额外的信息,这些信息用于在运行时确定该对象应该调用哪一个虚函数。典型情况下,这一信息具有一种被称为 vptr(virtual table pointer,虚函数表指针)的指针的形式。vptr 指向一

2015-04-24 14:30:38 558

转载 Internal Linkage和External Linkage

LinkageTo understand the behavior of C and C++ programs, you need to know about linkage. In an executing program, an identifier is represented by storage in memory that holds a variable or a compile

2015-03-17 12:48:51 1034

原创 Thrift 入门

1下载https://thrift.apache.org/download 下载编译好的release可执行文件:Thrift compiler forWindows (thrift-0.9.2.exe) 2安装把thrift-0.9.2.exe改名为thrift.exe放到path环境变量中存在的目录下,如:C:\Windows 改名为thrift.e

2014-11-19 15:52:44 2947 2

转载 C++函数异常说明

为了能够编写适当的catch子句,了解一个函数是否抛出异常或会抛出哪些异常对函数的用户来说是很有帮助的。而我们可以通过 异常说明 进行对一个函数的异常进行说明, 如果函数抛出异常,被抛出的异常将是包含在该说明中的一种或是从列出的异常中派生的类型。异常说明有如下的几种形式:1. 指定异常T   funNname( parameterlist ) throw( T1, T2,····,

2014-10-14 11:24:49 1582 1

转载 delete [] 时如何知道数组长度

在 C++ 中,你也许经常使用 new 和 delete 来动态申请和释放内存,但你可曾想过以下问题呢?new 和 delete 是函数吗?new [] 和 delete [] 又是什么?什么时候用它们?你知道 operator new 和 operator delete 吗?为什么 new [] 出来的数组有时可以用 delete 释放有时又不行?…如果你对这些问题都有疑问的话,不妨

2014-09-30 11:17:21 5983

转载 malloc 函数工作机制

malloc()工作机制malloc函数的实质体现在,它有一个将可用的内存块连接为一个长长的列表的所谓空闲链表。调用malloc函数时,它沿连接表寻找一个大到足以满足用户请求所需要的内存块。然后,将该内存块一分为二(一块的大小与用户请求的大小相等,另一块的大小就是剩下的字节)。接下来,将分配给用户的那块内存传给用户,并将剩下的那块(如果有的话)返回到连接表上。调用free函数时,它将用户释

2014-09-17 10:59:16 1801

转载 Linux操作系统学习_用户进程之由新进程创建到可执行程序的加载

fork()函数大家应该都不陌生,一个现有进程可以调用fork函数来创建一个新进程,由fork()创建的新进程通常被称为子进程。fork()函数被调用一次,但返回两次,两次返回的区别在于,子进程的返回值为0,父进程返回值为子进程的PID值。但是,就是这大家都非常熟悉的一个函数,在你调用fork进行新进程创建的过程中,操作系统到底做了哪些工作,具体的工作过程又是什么,不知道又有多少人清楚的知道。下面

2014-09-15 14:33:45 2909

转载 Linux 进程切换 0.11与2.4的比较

0.11的进程模型与2.4不同。0.11中每个进程都有一个tss结构,用于保存/恢复进程切换时的现场(主要都是一些寄存器);而2.4中每个cpu使用一个tss结构,多个进程将共用一个tss。因此,0.11的进程切换使用了CPU的硬件特性;而2.4的切换则是一种软切换,从CPU的角度来看,实际上没有进程切换,只不过是修改了若干寄存器而已。看进程切换的代码必须注意一点:内核空间和用户空间。

2014-09-14 15:44:09 1131

转载 进程切换与TSS

[转] http://www.eefocus.com/article/09-06/74895s.html Intel i386 体系结构包括了一个特殊的段类型,叫任务状态段(TSS),如图5.4所示。每个任务包含有它自己最小长度为104字节的TSS段,在/include/ i386/processor.h 中定义为tss_struct结构:struct tss_st

2014-09-14 15:12:35 8291

转载 16位和32位代码段

在对ix86编程时,有时候需要从实模式变换到保护模式(如在DOS时代要访问扩展内存,或者编写引导代码,当然,如果在32位的操作系统下面编程,是碰不到这个问题的),总是要涉及16位代码段和32位代码之间的跳转问题。因此有必要对他们进行区分。16位代码段和32位代码段的主要区别是,在16位代码段中,跳转目标的偏移用16位表示,而在32位代码段中,跳转目标的偏移用32位表示。在实模式下,CPU总

2014-09-03 11:22:32 4032

原创 判断一个整数是否是回文数

判断一个整数是否是回文,并且不能用额外的存储空间。

2014-08-21 00:23:26 3411

原创 U盘启动自己的操作系统

学习 >

2014-08-20 23:52:59 845

翻译 磁盘分区类型

NOTE: All Partition Type values listed below are inHexadecimal.Remember:Partition types do *not* necessarily specify a specific file system; e.g.,07h is used by both OS/2's HPFS and Windows NT

2014-08-06 10:39:04 2215

转载 硬盘分区表知识——详解硬盘MBR

硬盘是现在计算机上最常用的存储器之一。我们都知道,计算机之所以神奇,是因为它具有高速分析处理数据的能力。而这些数据都以文件的形式存储在硬盘里。不过,计算机可不像人那么聪明。在读取相应的文件时,你必须要给出相应的规则。这就是分区概念。    分区从实质上说就是对硬盘的一种格式化。当我们创建分区时,就已经设置好了硬盘的各项物理参数,指定了硬盘主引导记录(即MasterBootRecord,一般简称

2014-08-05 22:29:16 869

原创 磁盘分区

硬盘分区有三种,主磁盘分区、扩展磁盘分区、逻辑分区。一个硬盘主分区至少有1个,最多4个,扩展分区可以没有,最多1个。且主分区 + 扩展分区总共不能超过4个。逻辑分区可以有若干个。 分出主分区后,其余的部分可以分成扩展分区,一般是剩下的部分全部分成扩展分区,也可以不全分,那剩的部分就浪费了。但扩展分区是不能直接用的,他是以逻辑分区的方式来使用的,所以说扩展分区可分成若干逻辑分区。他们

2014-08-05 17:02:30 645

c++标准程序库

c++标准程序库

2014-11-20

Bochs x86 PC emulator

bochs-2.6.6.tar.gz, linux 上使用的bochs虚拟机。

2014-09-01

freedos-img.tar.gz

http://bochs.sourceforge.net/diskimages.html被封了,不能下载的。故上传此文件给需要的人使用。

2014-09-01

WCF技术剖析(卷1)

WCF技术剖析(卷1),是一本非常专业的不错的WCF技术类的书籍。

2013-01-21

STL 剖析(侯捷)

STL 剖析(侯捷)STL 剖析(侯捷)STL 剖析(侯捷)STL 剖析(侯捷)STL 剖析(侯捷)STL 剖析(侯捷)STL 剖析(侯捷)STL 剖析(侯捷)STL 剖析(侯捷)STL 剖析(侯捷)STL 剖析(侯捷)STL 剖析(侯捷)

2011-10-25

corba 程序设计指南

corba程序设计指南,是corba编程入门级的好文档。

2011-06-12

空空如也

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

TA关注的人

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