<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[AlexTiger0的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/AlexTiger0</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; AlexTiger0]]></copyright><item><title><![CDATA[structlayout]]></title><link>https://blog.youkuaiyun.com/AlexTiger0/article/details/6408690</link><guid>https://blog.youkuaiyun.com/AlexTiger0/article/details/6408690</guid><author>AlexTiger0</author><pubDate>Tue, 10 May 2011 11:22:00 +0800</pubDate><description><![CDATA[<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]]></description><category></category></item><item><title><![CDATA[UnSafe & Fixed]]></title><link>https://blog.youkuaiyun.com/AlexTiger0/article/details/6387452</link><guid>https://blog.youkuaiyun.com/AlexTiger0/article/details/6387452</guid><author>AlexTiger0</author><pubDate>Tue, 03 May 2011 16:09:00 +0800</pubDate><description><![CDATA[<br /><br />      c#在默认情况下生成的都是安全代码，即进行了代码托管（.NET的CLR机制好处之一是 ，进行代码托管，适时的释放内存，程序员便不必考虑资源的回收问题），而此时，指针不能出现在安全代码的编译条件下。<br /> 一、unsafe  <br />     如果因需要想在c#中使用指针，那么unsafe便是一个通道（当然在使用前，需在项目属性的生成选项中，选择“允许不安全代码”）。<br />example 1：<br />a） 创建项目，项目属性->生成->选择“允许不安全代]]></description><category></category></item><item><title><![CDATA[c# 调用研华AD板API例子 ]]></title><link>https://blog.youkuaiyun.com/AlexTiger0/article/details/6387406</link><guid>https://blog.youkuaiyun.com/AlexTiger0/article/details/6387406</guid><author>AlexTiger0</author><pubDate>Tue, 03 May 2011 15:52:00 +0800</pubDate><description><![CDATA[<br />最近用到研华的一款高精度AD转换卡，PCL816，需要使用C#调用研华库函数中的动态库文件Adsapi32.dll中的函数，参考了网上关于C#调用非托管dll的方法。<br />其中的难点主要是数据类型的匹配问题。基本的方法在MSDN中关于 c# 调用 C++ 非托管 Dll 的主题有详细的原理说明和例程，我博客上已经转了MSDN这一篇，这里就不赘述了。网上也有很多类型对应关系表，下面是比较好的一个。<br /> <br />C#调用C++编写的Win32 DLL文件时参数对应表<br />Wi]]></description><category></category></item><item><title><![CDATA[Asp.net 学习 -服务器控件 -TextboxData]]></title><link>https://blog.youkuaiyun.com/AlexTiger0/article/details/6311357</link><guid>https://blog.youkuaiyun.com/AlexTiger0/article/details/6311357</guid><author>AlexTiger0</author><pubDate>Sat, 09 Apr 2011 10:33:00 +0800</pubDate><description><![CDATA[[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]]></description><category></category></item><item><title><![CDATA[IsPostBack]]></title><link>https://blog.youkuaiyun.com/AlexTiger0/article/details/6290351</link><guid>https://blog.youkuaiyun.com/AlexTiger0/article/details/6290351</guid><author>AlexTiger0</author><pubDate>Wed, 30 Mar 2011 23:06:00 +0800</pubDate><description><![CDATA[  <br />1         IsPostBack介绍<br />IsPostBack是Page类有一个bool类型的属性，用来判断针对当前Form的请求是第一次还是非第一次请求。当IsPostBack＝true时表示非第一次请求，我们称为PostBack，当IsPostBack＝false时表示第一次请求。在asp.net框架内部有很多的场景需要判断IsPostBack，比如LoadAllState等操作就需要在PostBack的时候进行。对于我们自己使用WebForm进行开发时，经常会在Page_]]></description><category></category></item><item><title><![CDATA[c#位操作]]></title><link>https://blog.youkuaiyun.com/AlexTiger0/article/details/6103140</link><guid>https://blog.youkuaiyun.com/AlexTiger0/article/details/6103140</guid><author>AlexTiger0</author><pubDate>Tue, 28 Dec 2010 16:09:00 +0800</pubDate><description><![CDATA[<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]]></description><category></category></item><item><title><![CDATA[Monitor]]></title><link>https://blog.youkuaiyun.com/AlexTiger0/article/details/6052119</link><guid>https://blog.youkuaiyun.com/AlexTiger0/article/details/6052119</guid><author>AlexTiger0</author><pubDate>Fri, 03 Dec 2010 10:36:00 +0800</pubDate><description><![CDATA[<br /> <br />将为每个同步对象来维护以下信息：<br />

对当前持有锁的线程的引用。<br />

对就绪队列的引用，它包含准备获取锁的线程。<br />

对等待队列的引用，它包含正在等待锁定对象状态变化通知的线程。<br />Monitor有几个主要的方法，我们需要了解<br /><br />

1.Monitor.Enter和Monitor.Exit<br />

他们两个是一起的，我们在一个方法中，如果调用了Monitor.Enter,那么就必须有相应的Monit]]></description><category></category></item><item><title><![CDATA[整数溢出]]></title><link>https://blog.youkuaiyun.com/AlexTiger0/article/details/6048994</link><guid>https://blog.youkuaiyun.com/AlexTiger0/article/details/6048994</guid><author>AlexTiger0</author><pubDate>Wed, 01 Dec 2010 23:21:00 +0800</pubDate><description><![CDATA[<br />  首先要明白无符号整数是不会溢出的 ，那么怎么判断整数溢出？<br />  <limits.h> INT_MAX <br />   if(a + b > INT_MAX) 那么就说明它溢出]]></description><category></category></item><item><title><![CDATA[非数组指针]]></title><link>https://blog.youkuaiyun.com/AlexTiger0/article/details/6048892</link><guid>https://blog.youkuaiyun.com/AlexTiger0/article/details/6048892</guid><author>AlexTiger0</author><pubDate>Wed, 01 Dec 2010 22:28:00 +0800</pubDate><description><![CDATA[<br />   我们可以这样<br />   char * szPtr = "12354"; <br />   也可以这样 char *ptr ; ptr = "123154"; 但是 "124" 是string litral 我们无法修改它，因此我们申明要修改的字符串要用数组的形式 我们通过strcpy和strcat 来组合一个新的字符串(szPtr 只能用于读取，不能修改)<br />   所以我们一般采用 char p[]；但是p[] 必须指定容量,采用 malloc strlen 来组合一个字符串]]></description><category></category></item><item><title><![CDATA[数组与指针]]></title><link>https://blog.youkuaiyun.com/AlexTiger0/article/details/6048862</link><guid>https://blog.youkuaiyun.com/AlexTiger0/article/details/6048862</guid><author>AlexTiger0</author><pubDate>Wed, 01 Dec 2010 22:11:00 +0800</pubDate><description><![CDATA[<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]代表的是地址 因]]></description><category></category></item><item><title><![CDATA[函数指针]]></title><link>https://blog.youkuaiyun.com/AlexTiger0/article/details/6048835</link><guid>https://blog.youkuaiyun.com/AlexTiger0/article/details/6048835</guid><author>AlexTiger0</author><pubDate>Wed, 01 Dec 2010 21:54:00 +0800</pubDate><description><![CDATA[    int *gun（） ====>gun()  返回的是Int指针    int  (*gun) () ===> gun表示执行（*gun）()的函数指针    那么 int (*)() 就是类型gun的类型符号比如 我们可以这样    typedef  int (*funPtr)() ===>说明funPtr就是int型的函数指针    我们可以将0强制转换成一个Int类型的函数指针     (int(*)()) 0； 0代表的指针要注意2点： 1：它指向的内容不可访问 2:它不代表任何实际意义 比]]></description><category></category></item><item><title><![CDATA[单例模式的5种实现方式]]></title><link>https://blog.youkuaiyun.com/AlexTiger0/article/details/6047777</link><guid>https://blog.youkuaiyun.com/AlexTiger0/article/details/6047777</guid><author>AlexTiger0</author><pubDate>Wed, 01 Dec 2010 14:54:00 +0800</pubDate><description><![CDATA[<br />   在不涉及多线程调用的情况：<br />      public sealed class Singleton<br />
                 {<br />
                     private static Singleton instance = null;<br />
                     <br />
                     private Singleton(){}
            <br ]]></description><category></category></item><item><title><![CDATA[将对象序列化为XML]]></title><link>https://blog.youkuaiyun.com/AlexTiger0/article/details/6044704</link><guid>https://blog.youkuaiyun.com/AlexTiger0/article/details/6044704</guid><author>AlexTiger0</author><pubDate>Tue, 30 Nov 2010 10:11:00 +0800</pubDate><description><![CDATA[<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]]></description><category></category></item><item><title><![CDATA[深克隆]]></title><link>https://blog.youkuaiyun.com/AlexTiger0/article/details/6044656</link><guid>https://blog.youkuaiyun.com/AlexTiger0/article/details/6044656</guid><author>AlexTiger0</author><pubDate>Tue, 30 Nov 2010 09:56:00 +0800</pubDate><description><![CDATA[<br />            /// <summary>
        /// 使用序列化的方式，深克隆一个对象。
        /// </summary>
        public static object CloneObject(object obj)
        {
            // 创建内存流
            using (var ms = new MemoryStream())
            {
                /]]></description><category></category></item><item><title><![CDATA[UseMenomic]]></title><link>https://blog.youkuaiyun.com/AlexTiger0/article/details/6042468</link><guid>https://blog.youkuaiyun.com/AlexTiger0/article/details/6042468</guid><author>AlexTiger0</author><pubDate>Mon, 29 Nov 2010 12:34:00 +0800</pubDate><description><![CDATA[<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]]></description><category></category></item><item><title><![CDATA[颜色矩阵]]></title><link>https://blog.youkuaiyun.com/AlexTiger0/article/details/6034889</link><guid>https://blog.youkuaiyun.com/AlexTiger0/article/details/6034889</guid><author>AlexTiger0</author><pubDate>Thu, 25 Nov 2010 15:10:00 +0800</pubDate><description><![CDATA[<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]]></description><category></category></item><item><title><![CDATA[ToolBitmapAttribute]]></title><link>https://blog.youkuaiyun.com/AlexTiger0/article/details/6034490</link><guid>https://blog.youkuaiyun.com/AlexTiger0/article/details/6034490</guid><author>AlexTiger0</author><pubDate>Thu, 25 Nov 2010 13:13:00 +0800</pubDate><description><![CDATA[<br />写.Net自定义控件有一段时间了，一日突然发现工具箱里的那个蓝色齿轮图标越看越不爽。怎么办？换！<br />于是查了一下MSDN按照它的做法试了N次都行不通。<br />百度、Google 也查了，但是不知道是网上的那些个解决办法没有被写清楚，还是我的理解能力的问题。<br />这个问题还是没解决。因为有新的任务下来，这个问题一直被悬着没解决，最近因为项目的原因需要自己开发特定功能的控件。<br />该是解决这个问题的时候了。研究了一个早上总于搞定了。现在把我得到的结论写在这里，希望对大家有所帮]]></description><category></category></item><item><title><![CDATA[Designer属性 c#]]></title><link>https://blog.youkuaiyun.com/AlexTiger0/article/details/6034258</link><guid>https://blog.youkuaiyun.com/AlexTiger0/article/details/6034258</guid><author>AlexTiger0</author><pubDate>Thu, 25 Nov 2010 11:22:00 +0800</pubDate><description><![CDATA[<br />如何将 UserControl 对象用作设计时控件容器。可能会有这样的情况：您想将一个控件拖到 UserControl 中。为做到这一点， UserControl 必须用作控件容器。<br /><br /><br /><br />默认情况下，UserControl 对象只有在您创建它时才可以用作控件容器。在将 UserControl 放在 Windows 窗体上之后，为让 UserControl 承载构成控件，您必须更改 UserControl 的默认设计器。如要为一个组件实现设计时服务，请使用]]></description><category></category></item><item><title><![CDATA[C练习]]></title><link>https://blog.youkuaiyun.com/AlexTiger0/article/details/6032932</link><guid>https://blog.youkuaiyun.com/AlexTiger0/article/details/6032932</guid><author>AlexTiger0</author><pubDate>Wed, 24 Nov 2010 17:58:00 +0800</pubDate><description><![CDATA[<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 ]]></description><category></category></item><item><title><![CDATA[c语言拾遗4]]></title><link>https://blog.youkuaiyun.com/AlexTiger0/article/details/6012473</link><guid>https://blog.youkuaiyun.com/AlexTiger0/article/details/6012473</guid><author>AlexTiger0</author><pubDate>Tue, 16 Nov 2010 15:32:00 +0800</pubDate><description><![CDATA[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");
	]]></description><category></category></item></channel></rss>