自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 收藏
  • 关注

原创 structlayout

<br />[C#]<br />[StructLayout(LayoutKind.Explicit, Size=16, CharSet=CharSet.Ansi)]<br />public class MySystemTime <br />{<br />   [FieldOffset(0)]public ushort wYear; <br />   [FieldOffset(2)]public ushort wMonth;<br />   [FieldOffset(4)]public ushort wDay

2011-05-10 11:22:00 931

原创 UnSafe & Fixed

<br /><br />      c#在默认情况下生成的都是安全代码,即进行了代码托管(.NET的CLR机制好处之一是 ,进行代码托管,适时的释放内存,程序员便不必考虑资源的回收问题),而此时,指针不能出现在安全代码的编译条件下。<br /> 一、unsafe  <br />     如果因需要想在c#中使用指针,那么unsafe便是一个通道(当然在使用前,需在项目属性的生成选项中,选择“允许不安全代码”)。<br />example 1:<br />a) 创建项目,项目属性->生成->选择“允许不安全代

2011-05-03 16:09:00 883

原创 c# 调用研华AD板API例子

<br />最近用到研华的一款高精度AD转换卡,PCL816,需要使用C#调用研华库函数中的动态库文件Adsapi32.dll中的函数,参考了网上关于C#调用非托管dll的方法。<br />其中的难点主要是数据类型的匹配问题。基本的方法在MSDN中关于 c# 调用 C++ 非托管 Dll 的主题有详细的原理说明和例程,我博客上已经转了MSDN这一篇,这里就不赘述了。网上也有很多类型对应关系表,下面是比较好的一个。<br /> <br />C#调用C++编写的Win32 DLL文件时参数对应表<br />Wi

2011-05-03 15:52:00 6359

原创 Asp.net 学习 -服务器控件 -TextboxData

[DefaultProperty("Text"),ToolboxData("<{0}:WebCustomControl1 runat=server>")]Posted on 2008-04-10 17:09 莫问奴归处 阅读(235) 评论(0)  编辑收藏网摘 所属分类: VS 2005 & VS 2008<br />DefaultProperty     是设置控件默认的属性的。这里是其Text属性。就是当你选择这个控件的时候,在属性窗口中自动被选中的是Text属性。   <br />    <br

2011-04-09 10:33:00 751

原创 IsPostBack

  <br />1         IsPostBack介绍<br />IsPostBack是Page类有一个bool类型的属性,用来判断针对当前Form的请求是第一次还是非第一次请求。当IsPostBack=true时表示非第一次请求,我们称为PostBack,当IsPostBack=false时表示第一次请求。在asp.net框架内部有很多的场景需要判断IsPostBack,比如LoadAllState等操作就需要在PostBack的时候进行。对于我们自己使用WebForm进行开发时,经常会在Page_

2011-03-30 23:06:00 749

原创 c#位操作

<br />C#枚举运算使用技巧2010-08-09 15:33位运算符:& (按位与)、| (按位或)、^ (按位异或)、~ (按位取反)、>> (按位右移)、<< (按位左移)。 & ( 按位与): 概念上来讲就是二进制上按每一位(0或1)进行与运算。 那么与运算是什么意思该不用我说吧,就是两者都是1结果为真。其中一个为0结果为假。这里不可能有0、1之外的数,这里是二进制。先看一个8位二进制的例子: 7 & 8 = 0000 0 111 & 0000 1000 = 0000 0000 = 0 7 & 3

2010-12-28 16:09:00 2026

原创 Monitor

<br /> <br />将为每个同步对象来维护以下信息:<br />对当前持有锁的线程的引用。<br />对就绪队列的引用,它包含准备获取锁的线程。<br />对等待队列的引用,它包含正在等待锁定对象状态变化通知的线程。<br />Monitor有几个主要的方法,我们需要了解<br /><br />1.Monitor.Enter和Monitor.Exit<br />他们两个是一起的,我们在一个方法中,如果调用了Monitor.Enter,那么就必须有相应的Monit

2010-12-03 10:36:00 759

原创 整数溢出

<br />  首先要明白无符号整数是不会溢出的 ,那么怎么判断整数溢出?<br />  <limits.h> INT_MAX <br />   if(a + b > INT_MAX) 那么就说明它溢出

2010-12-01 23:21:00 624

原创 非数组指针

<br />   我们可以这样<br />   char * szPtr = "12354"; <br />   也可以这样 char *ptr ; ptr = "123154"; 但是 "124" 是string litral 我们无法修改它,因此我们申明要修改的字符串要用数组的形式 我们通过strcpy和strcat 来组合一个新的字符串(szPtr 只能用于读取,不能修改)<br />   所以我们一般采用 char p[];但是p[] 必须指定容量,采用 malloc strlen 来组合一个字符串

2010-12-01 22:28:00 621

原创 数组与指针

<br />     首先:i[a] 与 a[i] 的意思是一样的<br />     其次:<br />     int c[12][31];<br />     int *ptr;<br />     int value;<br />     我们可以这样:value = c[3][7];<br />     那么 我们也可以这样 value = *((c[3])+7)<br />     当然 还可以: value = *(*(c +3)+ 7)<br />    这里要说的 c[3]代表的是地址 因

2010-12-01 22:11:00 629

原创 函数指针

    int *gun() ====>gun()  返回的是Int指针    int  (*gun) () ===> gun表示执行(*gun)()的函数指针    那么 int (*)() 就是类型gun的类型符号比如 我们可以这样    typedef  int (*funPtr)() ===>说明funPtr就是int型的函数指针    我们可以将0强制转换成一个Int类型的函数指针     (int(*)()) 0; 0代表的指针要注意2点: 1:它指向的内容不可访问 2:它不代表任何实际意义 比

2010-12-01 21:54:00 605

原创 单例模式的5种实现方式

<br />   在不涉及多线程调用的情况:<br />     public sealed class Singleton<br />     {<br />         private static Singleton instance = null;<br />         <br />         private Singleton(){} <br

2010-12-01 14:54:00 691

原创 将对象序列化为XML

<br />      1.首先创建一个首节点<br />      2.利用反射取出对象的内属性名和值<br />      3.在已创建的XML文档中添加该节点<br />      <br /><br />     我们假设在对象都添加在首节点下面<br /> public static string Serialize<T>(List<T> genericList, string rootName) { var result = new XmlDocu

2010-11-30 10:11:00 765

原创 深克隆

<br />    /// <summary> /// 使用序列化的方式,深克隆一个对象。 /// </summary> public static object CloneObject(object obj) { // 创建内存流 using (var ms = new MemoryStream()) { /

2010-11-30 09:56:00 590

原创 UseMenomic

<br />    ProcessMenomenic 的用法<br />    ProcessMenomenic是助记符的处理程序<br />    比如设计一个button<br />   public class MyMnemonicButton : Button // This method makes sure the control is selectable and the // mneumonic is correct before displaying the mes

2010-11-29 12:34:00 685

原创 颜色矩阵

<br /> private void PaintImage(Graphics g) { // Yes, need to use the more complex DrawImage method instead Image image = Image.FromFile(@"C:/Earth.bmp"); // Three points pro

2010-11-25 15:10:00 919

原创 ToolBitmapAttribute

<br />写.Net自定义控件有一段时间了,一日突然发现工具箱里的那个蓝色齿轮图标越看越不爽。怎么办?换!<br />于是查了一下MSDN按照它的做法试了N次都行不通。<br />百度、Google 也查了,但是不知道是网上的那些个解决办法没有被写清楚,还是我的理解能力的问题。<br />这个问题还是没解决。因为有新的任务下来,这个问题一直被悬着没解决,最近因为项目的原因需要自己开发特定功能的控件。<br />该是解决这个问题的时候了。研究了一个早上总于搞定了。现在把我得到的结论写在这里,希望对大家有所帮

2010-11-25 13:13:00 937

原创 Designer属性 c#

<br />如何将 UserControl 对象用作设计时控件容器。可能会有这样的情况:您想将一个控件拖到 UserControl 中。为做到这一点, UserControl 必须用作控件容器。<br /><br /><br /><br />默认情况下,UserControl 对象只有在您创建它时才可以用作控件容器。在将 UserControl 放在 Windows 窗体上之后,为让 UserControl 承载构成控件,您必须更改 UserControl 的默认设计器。如要为一个组件实现设计时服务,请使用

2010-11-25 11:22:00 4018

原创 C练习

<br />      <br />这段代码是答应正三角形 ,中途出了一个问题 将temp-- 写成了 temp = n--;<br />这样n也在减 ,因此得到的结果就是错误的<br /> void PrintStar(){ printf("please input the n:"); int n; scanf("%d",&n); int sum = 2*n +1; int temp = n ; int location; for(int i = 0;i< n;i

2010-11-24 17:58:00 659

原创 c语言拾遗4

char* strcat(char* s1,char *s2){ char* ptr; ptr = s1; while(*ptr != '/0') ptr ++; ptr --; while(*s2 != '/0') *ptr ++ = *s2 ++; *ptr = '/0'; return s1;}void main(){ char d[20],s[20]; char *ret; strcpy(d,"this is");

2010-11-16 15:32:00 756

原创 c语言拾遗3

<br />  查看下面的例子<br /> void main(){ char * *ptr; static char *m[] = { "Operation error /n", "Mach failure/n", "Illage data/n", "Value out of range/n", }; ptr = m; while(* *ptr !=NULL) { printf("%s",*ptr++); }}<br /

2010-11-16 14:01:00 700

原创 c 语法部分补充2

<br />关于const 和非const<br />const int a = 234;<br />int b ;<br />b = a;<br />对于值来说这个是没问题 非const = const;<br />但是对于指针来说就不行<br />int value = 234;<br />const int* a = &value;<br />int* d ;<br />d = a;<br />这个肯定会错 为什么?如果我修改d的值不是就可以修改a的值了,因此对于指针来说非const != const

2010-11-16 00:18:00 665

原创 中断

   Linux的中断宏观分为两种:软中断和硬中断。声明一下,这里的软和硬的意思是指和软件相关以及和硬件相关,而不是软件实现的中断或硬件实现的中断。软中断就是“信号机制”。软中断不是软件中断。Linux通过信号来产生对进程的各种中断操作,我们现在知道的信号共有31个,其具体内容这里略过。  一般来说,软中断是由内核机制的触发事件引起的(例如进程运行超时),但是不可忽视有大量的软中断也是由于和硬件有关的中断引起的,例如当打印机端口产生一个硬件中断时,会通知和硬件相关的硬中断,硬中断就会产生一个软中断并送到操作

2010-11-15 16:41:00 748

原创 时间片

<br />时间片轮转调度是一种最古老,最简单,最公平且使用最广的算法是时间片调度。每个进程被分配一个时间段,称作它的时间片,即该进程允许运行的时间。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程序所要做的就是维护一张就绪进程列表,,当进程用完它的时间片后,它被移到队列的末尾。 <br />  时间片轮转调度中唯一有趣的一点是时间片的长度。从一个进程切换到另一个进程是需要一定时间的--保存和装入寄存器值及内存映像,更新各种表

2010-11-13 11:25:00 1120

原创 recursion error !

<br /> look following code:<br /> private string FileRenameHandler(string dic ,string filename)<br />{<br />              DirectoryInfo info = new DirectroyInfo(dic);<br />              int count = info.GetFiles(filename);<br />              if(count != 0)

2010-11-10 14:58:00 744

转载 数据库三范式

<br />数据库的三范式<br /><br />1N:关系R中的属性都是不可分割的项.<br />2N:在1N的基础上,每个非主属性完全函数依赖于码.<br />3N:在2N的基础上,每一个非主属性既不部分依赖于码也不传递依赖于码.<br /> 1N<br />  |   消除非主属性对码的部分函数依赖<br /> 2N<br />  |   消除非主属性对码的传递函数依赖<br /> 3N<br />  |   消除主属性对码的部分和传递函数依赖<br /> BCNF<br />  |   消除非平凡且

2010-11-08 22:06:00 668

转载 组件图

组件图的主要目的是显示系统组件间的结构关系。在 UML 1.1 中,一个组件表现了实施项目,如文件和可运行的程序。不幸地,这与组件这个术语更为普遍的用法、指象COM组件这样的东西相冲突。随着时间的推移及UML的连续版本发布, UML 组件已经失去了最初的绝大部分含义。UML 2 正式改变了组件概念的本质意思;在 UML 2 中,组件被认为是独立的,在一个系统或子系统中的封装单位,提供一个或多个接口。虽然 UML 2 规范没有严格地声明它,但是组件是呈现事物的更大的设计单元,这些事物一般将使用可更换的组件来实

2010-11-05 14:46:00 1097

原创 存贮器

<br />系统存贮器<br />分为2部分,低地址部分和高地址部分,其中高地址部分叫做上位存贮器(641k-1024k),地址地部分叫做基本存贮器或者基本内存(0-640k)<br />基本内存比较重要 :1我们的应用程序就放在该内存,dos命令,TSR驻留部分是受保护空间,系统不重启,他的内容就始终存在,这部分主要由dos的常驻程序占据,用户的驻留程序也在此,另外该内存中还有中断向量表,和bios数据区<br />高端存贮器中A0000到BFFFF用作显示缓冲区,C0000-DFFFF部分为Rom的扩展

2010-11-01 21:50:00 762

原创 c 语法部分补充

系统存贮器分为2部分,低地址部分和高地址部分,其中高地址部分叫做上位存贮器(641k-1024k),地址地部分叫做基本存贮器或者基本内存(0-640k)基本内存比较重要 :1我们的应用程序就放在该内存,dos命令,TSR驻留部分是受保护空间,系统不重启,他的内容就始终存在,这部分主要由dos的常驻程序占据,用户的驻留程序也在此,另外该内存中还有中断向量表,和bios数据区高端存贮器中A0000到BFFFF用作显示缓冲区,C0000-DFFFF部分为Rom的扩展部分,它用作存储视频显示器适配器和磁盘的Bios

2010-10-30 13:26:00 795

原创 creatobject的方式

<br />  我们一般有这种方式来声明复制一个对象:<br />   private MyClass _myClassObj = new MyClass(){name = "xue",id = "212"};<br />   做样做的要求是什么:<br />   1。必须要有个默认无参数的构造函数<br />   2。里面的属性必须是公共的;<br />我这里说这个的原因不是说就上面这种情况 ,而是在项目中发现了个问题<br />如果我的构造函数是这样的<br />public  MyClass(stri

2010-10-28 18:03:00 791

原创 绘制gif文件

<br /><br />using System;<br />using System.Drawing;<br />using System.Windows.Forms;<br />public class animateImage : Form <br />{<br />    //Create a Bitmpap Object.<br />    Bitmap animatedImage = new Bitmap("SampleAnimation.gif");<br />    bool current

2010-10-28 17:47:00 538

原创 c++ 多态

<br />     i know how to handle the multi-state in every programming launguage, but i have no idea why it can do it ;<br />today ,i analysis this.<br />    first ,we start with the parsing  from base type;<br />    int i = 6;<br />    char c = i;<br />   

2010-09-22 10:57:00 495

原创 RenderTranform

<br />    RenderTransform属性让你可以使用transform对象对一个元素进行旋转,倾斜,缩放及偏移操作.共有下面几种不同的transform对象:RotateTransform: 以指定角度旋转对象. SkewTransform: 对对象进行倾斜操作. ScaleTransform: 对对象进行放大或者缩小操作. TranslateTransform: 使对象从原坐标偏移. <br />    此外,还有一种特殊类型的transform对象: TransformGroup.使用它,

2010-09-13 21:53:00 546

原创 MFC 相关

afx_msg是宏   :afx开头的mfc函数都是全局函数  标明消息映射的afx_msg   什么都没定义,是为以后扩充保留的。     它的定义如下:(具体在哪个文件里,我忘记了)     #define   afx_msg     可以看出来它实际上是一个空定义! 项目函数说明:CWnd* GetDlgItem( int nID ) const;void GetDlgItem( int nID, HWND* phWnd) const;ParametersnID

2010-09-13 19:31:00 967

原创 memset

<br /><br />memest原型 (please type "man memset" in your shell) <br /> void *memset(void *s,  int c, size_t n); <br />memset:作用是在一段内存块中填充某个给定的值,它对较大的结构体或数组进行清零操作的一种最快方法。<br />常见的三种错误<br />第一: 搞反了c 和 n的位置. <br />一定要记住 如果要把一个char a[20]清零, 一定是 memset(a, 0, 20) 

2010-09-10 11:05:00 621

转载 DispatcherObject与WPF线程模型

<br />用Reflector分析WPF时,发现几乎所有的类的继承自DispatcherObject类。而该类非常简单,只有CheckAccess和VerifyAccess两个方法,一个Dispatcher只读属性和一个私有成员变量。正是由于继承了这个类,使WPF中其他类具有了多线程处理的能力。在分析DispatcherObject前,我们先看看一般Win32或WinForm GUI应用程序中存在的问题和解决办法。"没有响应":Message Pump被阻塞 使用Windows时,最常碰到的问题就是窗口没

2010-08-30 21:29:00 2798

转载 Http Get Post put delete

<br />HTTP POST GET 本质区别详解<br />一 原理区别  <br /><br />  一般在浏览器中输入网址访问资源都是通过GET方式;在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交  <br /><br />Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE  <br /><br />URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,

2010-08-25 09:49:00 24608 7

转载 arise your window step by step

<br />     frmNotices f = new frmNotices();<br />            Point p = new Point(Screen.PrimaryScreen.WorkingArea.Width-f.Width, Screen.PrimaryScreen.WorkingArea.Height);<br />            f.PointToScreen(p);<br />            f.Location = p;<br />          

2010-08-11 14:56:00 761

原创 位运算

<br />与:&<br />大家都好才行<br />或:|<br />只要有就行<br />异或:^<br />1.)  不同的就是真,相同的就是假:<br />运用:<br />异或还可以用来交换两个整形变量的值,而不需要第三个量的传递. <br />  例如: <br />  a=9; <br />  b=10; <br />  a=a^b; <br />  b=b^a; <br />  a=a^b; <br />  结果是a为10,b为9. <br /> 

2010-08-04 11:40:00 566

原创 repaint window caption

     i want the window it hasn't the buttons of min,max,and close .i want to paint myself close button ,so i do it this way;    at first ,set the window property "ControlBox" to false;    then  we intercept the window msg    0x86 WM_NCACTIVATE    0x85 WM_N

2010-07-30 16:22:00 653

空空如也

空空如也

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

TA关注的人

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