随笔分类 -  C#

深刻理解C#中资源释放
摘要:今天我的一个朋友看到我写的那篇《C#中用AJAX验证用户登录》时,给我指出了点小毛 病。就是在用户登录时,如果用户登录失败,在下面这段代码中,都会new出来一个User对象,如果连续登录失败多次,就会生成多个User对象,而它们 在登录失败后已经无用了,依然占据着内存,就算是C#有垃圾回收机制,但不... 阅读全文
posted @ 2014-10-25 16:12 冰花ぃ雪魄 阅读(537) 评论(0) 推荐(0) 编辑
The Truth About GCHandles
摘要:I've heard several people asking why GCHandle doesn't implement IDisposable, considering it wraps an unmanaged resource (a handle) and needs to be exp... 阅读全文
posted @ 2014-10-25 11:53 冰花ぃ雪魄 阅读(251) 评论(0) 推荐(0) 编辑
c# sleep 例子-线程挂起
摘要:using System; using System.Threading; public class arr { public static void Main() { ... 阅读全文
posted @ 2014-10-20 00:28 冰花ぃ雪魄 阅读(1730) 评论(0) 推荐(0) 编辑
如何让IntPtr指向一块内存,以及托管内存与非托管内存的相互转化
摘要:IntPtridp=IntPtr.Zero;StringBuilderidata=newStringBuilder("000000");stringidata="000000";我这样建立的2个idata字符串,如何让idp指向他我指向他的目的是为了传递给dll的某个函数,他需要传指针还有我定义了一... 阅读全文
posted @ 2014-10-19 21:58 冰花ぃ雪魄 阅读(1344) 评论(0) 推荐(0) 编辑
C#内存管理之托管堆与非托管堆( reprint )
摘要:在 .NET Framework 中,内存中的资源(即所有二进制信息的集合)分为“托管资源”和“非托管资源”。托管资源必须接受 .NET Framework 的 CLR (通用语言运行时)的管理(诸如内存类型安全性检查),而非托管资源则不必接受 .NET Framework 的 CLR 管理。(了解... 阅读全文
posted @ 2014-10-19 18:26 冰花ぃ雪魄 阅读(1651) 评论(0) 推荐(0) 编辑
winform中的ComboBox同时设置text和value的方法
摘要:winform中的ComboBox不能像webform中的dropdownlist控件一样,在属性中可以同时设置text和value值,可以通过编写一个新类来实现这个功能。1、首先在form1中添加一个新类ComboBoxItem:public class ComboBoxItem{private ... 阅读全文
posted @ 2014-10-19 11:05 冰花ぃ雪魄 阅读(900) 评论(0) 推荐(0) 编辑
C#String.Split (string[], StringSplitOptions)中的StringSplitOptions是什么意思,看了msdn还是不懂?
摘要:MSDN上面这样子写的:[ComVisibleAttribute(false)]public string[] Split(string[] separator,StringSplitOptions options)参数separator 类型:System.String[] ... 阅读全文
posted @ 2014-10-19 09:19 冰花ぃ雪魄 阅读(1349) 评论(0) 推荐(0) 编辑
c# 指针unsafe/fixed -- 【一】
摘要:指针C#unsafefixed目录(?)[-]概述unsafefixed 1.1概述unsafe关键字表示不安全上下文,该上下文是任何涉及指针的操作所必需的。可以在属性、方法、类的声明中使用unsafe修饰符,此时类型或成员的整个正文范围均被视为不安全上下文。fixed语句用于禁止垃圾回收器重定位可... 阅读全文
posted @ 2014-10-18 19:47 冰花ぃ雪魄 阅读(734) 评论(0) 推荐(0) 编辑
C#结构体指针的定义及使用详解(intptr的用法)
摘要:在解析C#结构体指针前,必须知道C#结构体是如何定义的。在c#中同样定义该结构体。C#结构体指针之C#结构体的定义:[StructLayout(LayoutKind.Sequential)] publicstructVGAStat { publicintChannelNum;//通道数量 [Mars... 阅读全文
posted @ 2014-10-18 15:21 冰花ぃ雪魄 阅读(12059) 评论(0) 推荐(0) 编辑
c#中Marshal.Copy()方法的使用
摘要:c#中Marshal.Copy方法的使用Marshal.copy()方法用来在托管对象(数组)和非托管对象(IntPtr)之间进行内容的复制函数有很多重载,如下所示:Copy(array[]()[], Int32, IntPtr, Int32) 将一维的托管 8 位无符号整数数组中的数据复制到非托管... 阅读全文
posted @ 2014-10-18 15:16 冰花ぃ雪魄 阅读(5057) 评论(0) 推荐(1) 编辑
C#.NET 消息机制
摘要:一、消息概述 众人周知,window系统是一个消息驱动的系统, windows操作系统本身有自己的消息队列,消息循环,它捕捉键盘,鼠标的动作生成消息,并将这个消息传给应用程序的消息队列。 余下的工作有应用程序处理消息, windows 消息机制在这儿就不再讲述,我们重点讲述应用程序的消息机制。 大家... 阅读全文
posted @ 2014-10-16 21:04 冰花ぃ雪魄 阅读(245) 评论(0) 推荐(0) 编辑
DefWndProc/WndProc/IMessageFilter的区别
摘要:谈到Winform的消息处理,多数时候是通过事件处理程序进行的,但当没有对应的事件时通常的做法是声明DefWndProc或者WndProc或者IMessageFilter,经常在网上看见有文章将三者并列,那么它们有什么区别呢?DefWndProc和WndProc都是继承自Control类中的虚方法,... 阅读全文
posted @ 2014-10-15 22:12 冰花ぃ雪魄 阅读(512) 评论(0) 推荐(0) 编辑
结合windows消息系统理解C#中WndProc函数和DefWndProc函数
摘要:Windows消息系统由3部分组成: 1.消息队列。Windows应用程序的消息是由Windows统一在一个消息队列中管理的。 2.消息循环。应用程序从Windows消息队列中获得自己的消息,并将其分配给窗体函数进行处理。 3.窗口过程。负责处理接收到的消息,每个窗口都有对应的窗口过程,负责截... 阅读全文
posted @ 2014-10-15 21:49 冰花ぃ雪魄 阅读(2763) 评论(0) 推荐(0) 编辑
关于dll的路径问题
摘要:最近在做一个sdk二次开发的项目,具体是将一个C++开发的SDk用C#将它的API接口全部封装一遍,然后再做一个demo就好了好不容易封装完了,在使用的时候出了问题。原来SDK中的dll老是加载不到。不是路径的问题,因为所有可能的路径我都试过了。问题是,C#引用的C++的那个dll又引用了一个dll... 阅读全文
posted @ 2014-10-15 21:06 冰花ぃ雪魄 阅读(279) 评论(0) 推荐(0) 编辑
C#dll中无法找到c++dll中函数的入口
摘要:刚试验了一下,老是c#中的dll无法找到c++dll中的函数的入口;暂时发现有俩个原因1,没有用extern “C” _declspec(dllexport),导致c#无法找到入口。2,在c++中的函数在一个namespace下,所以c#没有找到他另外,据说当C#的函数和C++的函数的参数内存没有对... 阅读全文
posted @ 2014-10-15 16:33 冰花ぃ雪魄 阅读(400) 评论(0) 推荐(0) 编辑
C#委托及事件处理机制浅析
摘要:事件可以理解为某个对象所发出的消息,以通知特定动作(行为)的发生或状态的改变。行为的发生可能是来自用户交互,如鼠标点击;也可能源自其它的程序逻辑。在这里,触发事件的对象被称为事件(消息)发出者(sender),捕获和响应事件的对象被称作事件接收者。在事件(消息)通讯中,负责事件发起的类对象并不知道哪... 阅读全文
posted @ 2014-10-12 22:34 冰花ぃ雪魄 阅读(426) 评论(0) 推荐(0) 编辑
C#中自定义消息,与MFc对比
摘要:在C#中采用的是事件驱动方式,但在我们使用的过程中,有时候通过调用系统原有的消息,处理起来会比较简单一些,特别是在处理与DLL文件的交互时,的确是非常的方便。 在C#中使用自定义消息 在C#中使用自定义消息非常简单,只需要下面几个简单的步骤就可以了: 1、 定义消息 定义... 阅读全文
posted @ 2014-10-12 22:18 冰花ぃ雪魄 阅读(404) 评论(0) 推荐(0) 编辑
C# 消息处理机制及自定义过滤方式
摘要:一、消息概述 Windows 下应用程序的执行是通过消息驱动的。消息是整个应用程序的工作引擎,我们需要理解掌握我们使用的编程语言是如何封装消息的原理。 1. 什么是消息(Message) 消息就是通知和命令。在.NET框架类库中的System.Windows.Forms命名空间中微软采... 阅读全文
posted @ 2014-10-12 20:26 冰花ぃ雪魄 阅读(478) 评论(0) 推荐(0) 编辑
C#中的DllImport
摘要:大家在实际工作学习C#的时候,可能会问:为什么我们要为一些已经存在的功能(比如 Windows中的一些功能,C++中已经编写好的一些方法)要重新编写代码,C#有没有方法可以直接都用这些原本已经存在的功能呢?答案是肯定的,大家 可以通过C#中的DllImport直接调用这些功能。 DllImport所... 阅读全文
posted @ 2014-10-09 21:09 冰花ぃ雪魄 阅读(248) 评论(0) 推荐(0) 编辑
StructLayout特性
摘要:StructLayout特性公共语言运行库利用StructLayoutAttribute控制类或结构的数据字段在托管内存中的物理布局,即类或结构需要按某种方式排列。如果要将类传递给需要指定布局的非托管代码,则显式控制类布局是重要的。它的构造函数中用 LayoutKind值初始化StructLayou... 阅读全文
posted @ 2014-10-09 20:46 冰花ぃ雪魄 阅读(180) 评论(0) 推荐(0) 编辑