自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(289)
  • 资源 (5)
  • 收藏
  • 关注

原创 C#协变

namespace 协变{ public class Animal { public string name; public Animal(string name1) { name = name1; } } public class dog : Animal {...

2020-05-03 21:06:43 329

转载 C#内存管理2

C#内存管理解析前言:对于很多的C#程序员来说,经常会很少去关注其内存的释放,他们认为C#带有强大的垃圾回收机制,所有不愿意去考虑这方面的事情,其实不尽然,很多时候我们都需要考虑C#内存的管理问题,否则会很容易造成内存的泄露问题。尽管.NET运行库负责处理大部分内存管理工作,但C#程序员仍然必须理解内存管理的工作原理,了解如何高效地处理非托管的资源,才能在非常注重性能的系统中高效地处理内存...

2019-10-27 23:52:15 266

转载 c#内存管理

在.net中内存资源可以分为托管资源和非托管资源。托管资源受CLR的管理,非托管资源则不受。1、托管资源托管资源分别存放在“栈”和“托管堆”。“值类型的实例作为局部变量时”和“引用类型的实例的引用”会存放在栈上。“值类型的实例作为类的成员时”和“引用类型的实例”会存放在堆上。当作为方法的参数时,值类型的变量直接拷贝一份, 引用类型拷贝一个指向同一对象的引用副本。...

2019-10-27 23:07:59 351

转载 c# mutex

c# mutex参考地址:http://blog.sina.com.cn/s/blog_68e4d2910100q6uj.html什么是Mutex  “mutex”是术语“互相排斥(mutually exclusive)”的简写形式,也就是互斥量。互斥量跟临界区中提到的Monitor很相似,只有拥有互斥对象的线程才具有访问资源的权限,由于互斥对象只有一个,因此就决定了任何情况下此...

2019-10-22 14:47:58 2310

原创 await

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApp2{ using System; using System.Collections.Generic; ...

2019-10-20 15:53:32 298

转载 windows io

一、  同步I/O和异步I/O在介绍这部分内容之前先来认识下“异步I/O”。  说起异步IO,很容易联想到同步I/O,对于同一个I/O对象句柄在同一时刻只允许一个I/O操作,其原理如下图所示:    显然,当内核真正处理I/O的时间段(T2~T4),用户线程是处于等待状态的,如果这个时间段比较段的话,没有什么影响;倘若这个时间段很长的话,线程就会长时间处于挂起状态。事实上,该线程完全可以利...

2019-02-12 13:59:28 488

转载 bmp数据格式

先区分几个概念:16色和16位色一样吗?不一样!颜色位数,即是用多少位字节表示的值,每一位可以表示0和1两值。通常图片的颜色深度,简称色深,就是用位数来表示的,所以,我通常会看到8位色,16位色,24位色和32位色。而我们在其它地方看到的又是16色,256色,16777216色等等,这些怎么一回事呢? 16色即代表16种颜色,256色即256种颜色,8位色就是用8个位来表示的颜色,即2...

2019-01-24 15:13:08 993 1

转载 bmp 存图 转换

16位,24位,32位的BMP图片算法是如何运算的 这段代码的作用是将缓冲区里的24位、16位、32位的数据转换成RGB565格式的16位颜色值。if(color_byte == 3) //24位颜色图{ switch ( rgb ) { case 0 : tmp_color = buffer[count]>>3 ;//为什么要右移3位呢,它表示的...

2019-01-17 11:25:41 316

原创 C#和c++互转

https://blog.csdn.net/u011430225/article/details/78675163 下载地址:看起来微软自己也是深受.NET蹩脚的P/Invoke支持的毒害,因此无奈之余发布了P/Invoke Interop Assistant工具,你可以去下面这个链接来下载这个工具:http://download.microsoft.com/download/f/...

2019-01-02 20:30:03 663

转载 C# 指针之美

原文地址:https://www.cnblogs.com/xiaotie/archive/2012/07/06/2579853.html    将C#图像库的基础部分开源了(https://github.com/xiaotie/GebImage)。这个库比较简单,且离成熟还有一段距离,但它是一种新的开发模式的探索:以指针和非托管内存为主的C#程序开发。    我许多项目都是在这个库基础上的开...

2018-12-30 14:20:06 192

转载 C# 指针操作图像

原文地址:https://www.cnblogs.com/lixunwu/articles/6692007.html读取图片时,请参考bolg文章:C#图片的像素格式问题研究 (http://www.cnblogs.com/lixunwu/articles/6691962.html) private unsafe void ProcessFilter(Bitmap imageT) ...

2018-12-30 13:16:18 1915

转载 C#中使用指针

C#为了类型安全,默认并不支持指针。但是也并不是说C#不支持指针,我们可以使用unsafe关键词,开启不安全代码(unsafe code)开发模式。在不安全模式下,我们可以直接操作内存,这样就可以使用指针了。在不安全模式下,CLR并不检测unsafe代码的安全,而是直接执行代码。unsafe代码的安全需要开发人员自行检测。一、Vs2010中开启unsafe code 的方式在方法、类、代码...

2018-12-30 12:01:52 1010

转载 c# 特性

   特性提供功能强大的方法,用以将元数据或声明信息与代码(程序集、类型、方法、属性等)相关联。特性与程序实体关联后,即可在运行时使用名为“反射”的技术查询特性。这篇文章绝大部分是按照MSDN来学习的,只是加了一点点自己的东东,官方介绍的很详细,我们就一起来了解一下它的用法。特性具有以下属性: 特性可向程序中添加元数据。元数据是有关在程序中定义的类型的信息。所有的 .NET 程序集都包含...

2018-12-30 09:09:11 573

转载 C# task 取消

1、需求  我们知道task是并行计算的,比如说主线程在某个时刻由于某种原因要取消某个task的执行,我们能做到吗? 当然我们可以做到。 在4.0中给我们提供一个“取消标记”叫做CancellationTokenSource.Token,在创建task的时候传入此参数,就可以将主线程和任务相关联,然后在任务中设置“取消信号“叫做ThrowIfCancellationRequested来等待主线...

2018-12-24 10:27:46 12135

转载 委托本质

前言  委托和事件是c#基础中两个重要的知识,平时工作中也会经常用到。接下来我会写两篇我对委托和事件的理解,欢迎拍砖。  回调函数是一种非常有用的编程机制,许多语言都对它提供了支持。回调函数是一个通过函数指针调用的函数。通常,我们会把回调函数作为参数传递给另一个函数,当某些事件发生或满足某些条件时,由调用者执行回调函数用于对该事件或条件进行响应。简单来说,实现回调函数有如下步骤:  1...

2018-12-23 10:01:42 468

转载 C# beginInvoke

摘要异步这东西,真正用起来的时候,发现事情还是挺多的,最近在项目中用到了异步的知识,发现对它还是不了解,处理起来,走了不少弯路。觉得还是补一补还是很有必要的。MSDN原文地址:https://msdn.microsoft.com/en-us/library/2e08f6yc(v=vs.110).aspx正文.Net framework可以让你异步调用任何方法。为达这样的目的,你可以...

2018-12-23 08:59:33 7853

原创 C# 正则表达式 元字符

C# 正则表达式 元字符 1 . 除了\n以外的任意单个字符符合规则如下:如 a.b下列符合条件a. baaba3b 2 [] 字符组: 表示在字符组中罗列出的字符任意一个。任意取字符组中的一个。-出现在第一位只表示字符- ;a-z - 表示a到z的符号如 a[xyz]b下列符合条件axbaybazb如a[a-z]b下列符合条件azbaxbaab如a[a-...

2018-10-17 17:14:07 323

原创 c# 序列化和反序列化 深拷贝

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Runtime.Serialization.Formatters.Binary;using System.IO;using System...

2018-10-17 00:31:08 734

原创 C# 索引器 扩展方法 new使用

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace new_csharp{ /*public class BaseC{ public int x; public vo...

2018-10-16 16:23:29 542

转载 C#索引器(类似C++ []运算符重载)

说索引器之前先来了解一下属性:它提供灵活的机制来读取、编写或计算某个私有字段的值。 可以像使用公共数据成员一样使用属性,但实际上它们是称作“访问器”的特殊方法。 这使得可以轻松访问数据,此外还有助于提高方法的安全性和灵活性。 class Program { static void Main(string[] args) { ...

2018-10-16 14:38:09 960

转载 跨线程直接更新UI控件汇总

C#Winform编程中,跨线程直接更新UI控件的做法是不正确的,会时常出现“线程间操作无效: 从不是创建控件的线程访问它”的异常。处理跨线程更新Winform UI控件常用的方法有4种:1. 通过UI线程的SynchronizationContext的Post/Send方法更新;2. 通过UI控件的Invoke/BeginInvoke方法更新;3. 通过BackgroundWorker取代T...

2018-10-14 22:43:17 351

转载 c#如何处理自定义消息

随笔- 1124  文章- 52  评论- 83 c#如何处理自定义消息C#自定义消息通信往往采用事件驱动的方式实现,但有时候我们不得不采用操作系统的消息通信机制,例如在和底层语言开发的DLL交互时,是比较方便的。下面列举了一些实现方式,以供参考。有关C#中的消息机制,请参考文章C# 消息处理机制及自定义过滤方式。 一、通过SendMessage或postmessage函数发送...

2018-10-14 19:02:16 723

转载 C# 消息处理机制及自定义过滤方式

一、消息概述 Windows 下应用程序的执行是通过消息驱动的。消息是整个应用程序的工作引擎,我们需要理解掌握我们使用的编程语言是如何封装消息的原理。1. 什么是消息(Message) 消息就是通知和命令。在.NET框架类库中的System.Windows.Forms命名空间中微软采用面对对象的方式重新定义了Message。新的消息(Message)结构的公共部分属性基本与早期的一样,不过它是...

2018-10-14 18:54:37 243

原创 链表 环形链表 队列 环形队列 栈

#include<iostream>#include "stdlib.h"#define _AFXDLL#include "windows.h"#include "process.h"#define SelTest 2using namespace std;template<typename T>class mylist{private: stru...

2018-10-10 23:56:41 495

原创 泛型链表的反转

#include<iostream>#include "stdlib.h"using namespace std;template<typename T>class mylist{private: struct node { T data; node* m_next; node() { m_next=NULL; } };pub...

2018-10-07 17:24:47 138

原创 C#贪心算法

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Collections.Generic;namespace ConsoleApplication3{ public class ActiveTime { sta...

2018-09-25 17:49:28 1348

原创 数据库4 select 用法

select * from 表名  -- 查询整个表的记录select  列名1,列名2 , 列名3... from  表名  --查询整个表的显示特定列的记录select 列名 from 表名 where -- 查询整个表的符合特定条件的记录select 列名 as 别名 from 表名 -- 查询整个表,显示特定列的 显示列的别名,并不修改表结构select 列名  别名  from ...

2018-09-08 02:58:26 299

原创 数据库 3 alter用法 --约束

altert table 表名  add 列名 数据类型                 --增加一个表的一个列alert  table 表名  drop column 列名    -- 删除一个表的一个列alert  table 表名  alter  列名 数据类型  -- 修改一个名的 一个列的数据类型alert  table 表名  add  constraint  主键约束名 pri...

2018-09-08 02:34:41 894

原创 数据库之2 insert into updata

create database Empplesson primary(--创建数据库 name = EmpItem,size = 5mb,filename ='f:\吴安学习\数据库\数据库练习\Emppless.mdf',filegrowth =20%)log on(name =EmpItem_log,size =5mb,filename ='f:\吴安学习\数据库\...

2018-09-02 14:35:24 166

原创 学习数据库1-创建数据和表

create database mydbon primary(--配置主数据文件的选项name='mydatabaseone',--主数据文件的逻辑名称filename ='c:\mydatabaseone.mdf',--主数据库的文件的实际位置size =5MB,filegrowth =20%)log on(--配置日志文件的选项name ='mydatabaseone...

2018-09-02 00:42:44 201

原创 MFC DDX_Control 报错问题

MFC   实现控件ID和控件变量的绑定 DDX_Control ,实现子类化的。 有时候报错了。原因总结如下1   ID 号在resource.h 是否重复。 重复了要注意是不是一个是不用的,如果另外一个ID 不使用,重复无影响。2  在多项目工程的解决方案中,修改了头文件,资源文件,不能只编译当前项目,要将链接到当前项目的lib文件的所有项目,全部生成一编。注意是生成一次,不用重新生成...

2018-08-21 19:58:18 3415

转载 c#中的值类型和引用类型 装箱拆箱 (好文)

 一,c#中的值类型和引用类型     众所周知在c#中有两种基本类型,它们分别是值类型和引用类型;而每种类型都可以细分为如下类型:     什么是值类型和引用类型 什么是值类型: 进一步研究文档,你会发现所有的结构都是抽象类型System.ValueType的直接派生类,而System.ValueType本身又是直接从System.Object派生的。根据定义所知,所有的值...

2018-08-21 10:23:03 3445 18

转载 c# 托管对象与InPtr互转

//托管对象转interPtrGCHandle thisHandle = GCHandle.Alloc(this);nGCHandle.ToIntPtr(thisHandle);//interPtr转非托管对象GCHandle gcUser = GCHandle.FromIntPtr(pUser);HikVisionCamera CamObj = (HikVisionCa...

2018-08-20 18:32:52 1253

原创 C# begininvoke (control)

namespace WindowsFormsApplication1{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void showMsg(string str)...

2018-08-11 17:12:59 881

转载 C# Invoke和BeginInvoke(1)

 近日,被Control的Invoke和BeginInvoke搞的头大,就查了些相关的资料,整理如下。感谢这篇文章对我的理解Invoke和BeginInvoke的真正含义 。(一)Control的Invoke和BeginInvoke我们要基于以下认识:(1)Control的Invoke和BeginInvoke与Delegate的Invoke和BeginInvoke是不同的。(2)Contr...

2018-08-11 17:03:21 4217

原创 WPF 之1

<Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:...

2018-08-08 17:52:31 115

原创 C# 之attribute

C# attribute  是不同于属性的, 我们自己写的attribute  姑且叫UserAttribute   继承于attribute 他的作用是什么。他只是做个标记,对类 属性做个标记。一个类或属性 或方法 可以有多个标记。 标记的目的是为了给别人使用时候,识别。从而做成相应的动作。貌似也实现了多态。使用方法 :1) 获得 Type  --> GetType2)  获得Mo...

2018-08-08 16:50:30 164

原创 c++ 多继承

#include "stdafx.h"#include <stdlib.h>#include <iostream>using namespace std;class A{ public: A(){_a = 0x00;} virtual ~A(){} virtual void printA(){} virtual A* clone()co...

2018-08-07 12:13:04 182

转载 C++const

C++ const用法小结 (欢迎大家拍砖)C++const 关键字小结 const 是constant的缩写,本意是不变的,不易改变的意思。const 在C++中是用来修饰内置类型变量,自定义对象,成员函数,返回值,函数参数。 一、const修饰普通类型的变量。如下:1 const int a = 7; 2 3 int b = a; //it's rig...

2018-08-07 11:17:48 205

转载 C++异常机制

C++异常 为什么要用c++的异常处理机制? 在我们平时写C语言程序时,经常出现会出现一些错误,有些是我们可以预测到的,这些我们可以通过返回错误码,或者设置回调函数打印错误信息等方法处理。但还有些程错误是我们不好预测的,如断错误,这时产生错误我们没有处理就会终止程序,然而我们经常运行程序后遇到错误不希望终止,如我们进程使用一些垃圾软件会闪退,这就是因为他门的程序异常没有处理好,所以遇...

2018-08-03 11:58:42 254

GDI 双缓存 以及简单绘图

GDI 双缓存 以及简单绘图,从读取图片到显示,双缓存显示等 vs2010

2018-05-24

c++2级指针的使用

2级指针 c++,对于加深C++ 指针的理解,有些帮助

2018-05-17

MFC UI 线程的使用

MFC UI 线程 ,以及对UI线程发送消息。CWinThread的使用,以及宏 ON_THREAD_MESSAGE ,PostThreadMessage的使用。

2018-05-17

使用字符在dll中创建类,实现多态

使用字符在dll中创建类,实现多态,可以避免dll 不能更改类的 ,避免dll地狱问题

2018-05-16

凹凸效果按钮

实现具有切换开关的按钮 ,有凹凸效果的按钮,在vs2005测试通过。效果很好

2014-05-05

空空如也

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

TA关注的人

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