- 博客(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
989
原创 UnSafe & Fixed
<br /><br /> c#在默认情况下生成的都是安全代码,即进行了代码托管(.NET的CLR机制好处之一是 ,进行代码托管,适时的释放内存,程序员便不必考虑资源的回收问题),而此时,指针不能出现在安全代码的编译条件下。<br /> 一、unsafe <br /> 如果因需要想在c#中使用指针,那么unsafe便是一个通道(当然在使用前,需在项目属性的生成选项中,选择“允许不安全代码”)。<br />example 1:<br />a) 创建项目,项目属性->生成->选择“允许不安全代
2011-05-03 16:09:00
944
原创 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
6549
原创 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
799
原创 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
790
原创 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
2105
原创 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
810
原创 整数溢出
<br /> 首先要明白无符号整数是不会溢出的 ,那么怎么判断整数溢出?<br /> <limits.h> INT_MAX <br /> if(a + b > INT_MAX) 那么就说明它溢出
2010-12-01 23:21:00
689
原创 非数组指针
<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
671
原创 数组与指针
<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
666
原创 函数指针
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
644
原创 单例模式的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
743
原创 将对象序列化为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
806
原创 深克隆
<br /> /// <summary> /// 使用序列化的方式,深克隆一个对象。 /// </summary> public static object CloneObject(object obj) { // 创建内存流 using (var ms = new MemoryStream()) { /
2010-11-30 09:56:00
633
原创 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
728
原创 颜色矩阵
<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
954
原创 ToolBitmapAttribute
<br />写.Net自定义控件有一段时间了,一日突然发现工具箱里的那个蓝色齿轮图标越看越不爽。怎么办?换!<br />于是查了一下MSDN按照它的做法试了N次都行不通。<br />百度、Google 也查了,但是不知道是网上的那些个解决办法没有被写清楚,还是我的理解能力的问题。<br />这个问题还是没解决。因为有新的任务下来,这个问题一直被悬着没解决,最近因为项目的原因需要自己开发特定功能的控件。<br />该是解决这个问题的时候了。研究了一个早上总于搞定了。现在把我得到的结论写在这里,希望对大家有所帮
2010-11-25 13:13:00
993
原创 Designer属性 c#
<br />如何将 UserControl 对象用作设计时控件容器。可能会有这样的情况:您想将一个控件拖到 UserControl 中。为做到这一点, UserControl 必须用作控件容器。<br /><br /><br /><br />默认情况下,UserControl 对象只有在您创建它时才可以用作控件容器。在将 UserControl 放在 Windows 窗体上之后,为让 UserControl 承载构成控件,您必须更改 UserControl 的默认设计器。如要为一个组件实现设计时服务,请使用
2010-11-25 11:22:00
4153
原创 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
695
原创 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
794
原创 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
729
原创 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
700
原创 中断
Linux的中断宏观分为两种:软中断和硬中断。声明一下,这里的软和硬的意思是指和软件相关以及和硬件相关,而不是软件实现的中断或硬件实现的中断。软中断就是“信号机制”。软中断不是软件中断。Linux通过信号来产生对进程的各种中断操作,我们现在知道的信号共有31个,其具体内容这里略过。 一般来说,软中断是由内核机制的触发事件引起的(例如进程运行超时),但是不可忽视有大量的软中断也是由于和硬件有关的中断引起的,例如当打印机端口产生一个硬件中断时,会通知和硬件相关的硬中断,硬中断就会产生一个软中断并送到操作
2010-11-15 16:41:00
883
原创 时间片
<br />时间片轮转调度是一种最古老,最简单,最公平且使用最广的算法是时间片调度。每个进程被分配一个时间段,称作它的时间片,即该进程允许运行的时间。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程序所要做的就是维护一张就绪进程列表,,当进程用完它的时间片后,它被移到队列的末尾。 <br /> 时间片轮转调度中唯一有趣的一点是时间片的长度。从一个进程切换到另一个进程是需要一定时间的--保存和装入寄存器值及内存映像,更新各种表
2010-11-13 11:25:00
1178
原创 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
796
转载 数据库三范式
<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
705
转载 组件图
组件图的主要目的是显示系统组件间的结构关系。在 UML 1.1 中,一个组件表现了实施项目,如文件和可运行的程序。不幸地,这与组件这个术语更为普遍的用法、指象COM组件这样的东西相冲突。随着时间的推移及UML的连续版本发布, UML 组件已经失去了最初的绝大部分含义。UML 2 正式改变了组件概念的本质意思;在 UML 2 中,组件被认为是独立的,在一个系统或子系统中的封装单位,提供一个或多个接口。虽然 UML 2 规范没有严格地声明它,但是组件是呈现事物的更大的设计单元,这些事物一般将使用可更换的组件来实
2010-11-05 14:46:00
1211
原创 存贮器
<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
813
原创 c 语法部分补充
系统存贮器分为2部分,低地址部分和高地址部分,其中高地址部分叫做上位存贮器(641k-1024k),地址地部分叫做基本存贮器或者基本内存(0-640k)基本内存比较重要 :1我们的应用程序就放在该内存,dos命令,TSR驻留部分是受保护空间,系统不重启,他的内容就始终存在,这部分主要由dos的常驻程序占据,用户的驻留程序也在此,另外该内存中还有中断向量表,和bios数据区高端存贮器中A0000到BFFFF用作显示缓冲区,C0000-DFFFF部分为Rom的扩展部分,它用作存储视频显示器适配器和磁盘的Bios
2010-10-30 13:26:00
823
原创 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
833
原创 绘制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
566
原创 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
532
原创 RenderTranform
<br /> RenderTransform属性让你可以使用transform对象对一个元素进行旋转,倾斜,缩放及偏移操作.共有下面几种不同的transform对象:RotateTransform: 以指定角度旋转对象. SkewTransform: 对对象进行倾斜操作. ScaleTransform: 对对象进行放大或者缩小操作. TranslateTransform: 使对象从原坐标偏移. <br /> 此外,还有一种特殊类型的transform对象: TransformGroup.使用它,
2010-09-13 21:53:00
586
原创 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
1017
原创 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
680
转载 DispatcherObject与WPF线程模型
<br />用Reflector分析WPF时,发现几乎所有的类的继承自DispatcherObject类。而该类非常简单,只有CheckAccess和VerifyAccess两个方法,一个Dispatcher只读属性和一个私有成员变量。正是由于继承了这个类,使WPF中其他类具有了多线程处理的能力。在分析DispatcherObject前,我们先看看一般Win32或WinForm GUI应用程序中存在的问题和解决办法。"没有响应":Message Pump被阻塞 使用Windows时,最常碰到的问题就是窗口没
2010-08-30 21:29:00
2854
转载 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
24746
3
转载 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
785
原创 位运算
<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
591
原创 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
693
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人