C#
东西北
机器视觉
展开
-
C# get;set;属性。
class Class1 { private int _i; public int i { get { return _i; } set {原创 2012-02-24 09:25:47 · 575 阅读 · 0 评论 -
C# List<T>用法
所属命名空间:using System.Collections.Generic; List类是 ArrayList 类的泛型等效类。 该类使用大小可按需动态增加的数组实现 IList 泛型接口。 泛型的好处: 它为使用 c#语言编写面向对象程序增加了极大的效力和灵活性。不会强行对值类型进行装箱和拆箱,或对引用类型进行向下强制类型转换,所以性能得到提高。一、 List转载 2012-08-14 09:01:25 · 2868 阅读 · 0 评论 -
Framework
VS2008及更新的版本才可以。1.在“项目”菜单上,单击“解决方案名称 属性”。 2.单击“应用程序”选项卡。 3.在“目标 Framework”列表中,选择“.NET Framework 2.0”、“.NET Framework 3.0”或“.NET Framework 3.5”。须声明主体,因为它未标记为 abstract 或 externpublic int sInde转载 2012-08-31 09:28:15 · 459 阅读 · 0 评论 -
VS2010选择Framework版本
新装的操作系统xp sp3,安装VS2010后,发现目标框架只有4.0。而电脑上已经装了2.0,3.5的框架,把原有的3.5FrameWork删了再重新安装也没有用。折腾了好久,最终卸载新装的操作系统xp sp3,安装VS2010后,发现目标框架只有4.0。而电脑上已经装了2.0,3.5的框架,把原有的3.5FrameWork删了再重新安装也没有用。折腾了好久,最终卸载我装的vs2010中转载 2012-09-05 11:52:53 · 4836 阅读 · 0 评论 -
C# 画圆,写字
画填充圆: Graphics gra = this.pictureBox1.CreateGraphics();gra.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;Brush bush = new SolidBrush(Color.Green);//填充的颜色gra.Fill原创 2012-10-30 16:10:01 · 1647 阅读 · 0 评论 -
数组MARSHALLING
在托管代码和本地代码之间传递数组,是interop marshaling中间比较复杂的一个问题。本文从数组的定义开始,介绍数组marshalling的三种方法,并对blittable类型等概念做进一步的讨论。当托管代码需要和本地代码互操作时,我们就进入了interop的领域。interop的场景形形色色,不变的是我们需要把数据从一个世界marshal到另一个世界。在讨论数组mars转载 2012-11-07 09:01:47 · 630 阅读 · 0 评论 -
C#调用C++编写的DLL函数, 以及各种类型的参数传递
1. 如果函数只有传入参数,比如:C/C++ Code Copy Code To Clipboard//C++中的输出函数int __declspec(dllexport) test(const int N){return N+10;}对应的C#代码为:C# Code Copy Code To Clipboard[DllImpor转载 2012-11-07 09:00:34 · 766 阅读 · 0 评论 -
C# 画点
画点的方法:方法一: 用picGraphics.FillRectangle(new SolidBrush(fillColor), p.X, p.Y, 1, 1); 即用一个像素填充方法.方法二: 用gdi32.dll库中的SetPixel方法 [DllImport("gdi32.dll")] private static extern int转载 2012-11-28 09:28:30 · 2965 阅读 · 1 评论 -
C# Picturebox 刷新 Refresh()图像一闪而过
C# Picturebox 刷新 Refresh()图像一闪而过问题描述:重载OnPaint函数在OnPaint函数中使用了 Graphics gra = this.pictureBox1.CreateGraphics();重新创建了Graphics导致图像一闪而过。改为e.Graphics即可。原创 2012-11-29 13:50:43 · 12080 阅读 · 1 评论 -
验证时出错。HRESULT = '8000000A'
验证时出错。HRESULT = '8000000A'在VS2010中,当为Windows窗体应用程序添加一个安装项目后,如果项目生成时出现以下错误:验证时发生错误。HRESULT = '8000000A“解决的办法是:使用记事本或其他文本编辑器打开Setup.vdproj文件,删除以下行:"SccProjectName" = "8:""SccLocalPath"转载 2012-12-04 10:24:51 · 1540 阅读 · 1 评论 -
C# 调用C++DLL传递的bool型,返回混乱
问题:C# 调用C++DLL传递的bool型,返回混乱原因:C++中bool占一个字节,C#中bool占4个字节解决方法:将C++中的bool该为BOOL,或C#中的bool该为byte原因:统一变量所占地址空间大小。C++中BOOL与C#中bool同样占用4个字节,C#中byte与C++中bool同样占用一个字节。 C++中定义如下结构体struct MYSTRUCT原创 2012-12-05 10:15:27 · 5968 阅读 · 2 评论 -
C#绘图双缓冲
C#绘图双缓冲 C#双缓冲解释:简单说就是当我们在进行画图操作时,系统并不是直接把内容呈现到屏幕上,而是先在内存中保存,然后一次性把结果输出来,如果没用双缓冲的话,你会发现在画图过程中屏幕会闪的很厉害,因为后台一直在刷新,而如果等用户画完之后再输出就不会出现这种情况,具体的做法,其实也就是先创建一个位图对象,然后把内容保存在里面,最后把图呈现出来。 GDI+的双缓冲问题转载 2012-12-06 17:02:55 · 7849 阅读 · 0 评论 -
C# 使用多线程
转自:http://www.cnblogs.com/miniwiki/archive/2010/06/19/1760984.html1. 单元模式和Windows Forms 单元模式线程是一个自动线程安全机制, 非常贴近于COM——Microsoft的遗留下的组件对象模型。尽管.NET最大地放弃摆脱了遗留下的模型,但很多时候它也会突然出现,这是因为有必要与旧的API 进行通转载 2013-02-19 10:05:41 · 918 阅读 · 0 评论 -
CLR 无法从 COM 上下文 。。。 转换为 COM 上下文 。。。
CLR 无法从 COM 上下文 0x20a6f0 转换为 COM 上下文 0x20a860,这种状态已持续 60 秒CLR 无法从 COM 上下文 0x20a6f0 转换为 COM 上下文 0x20a860,这种状态已持续 60 秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送 Windows 消息的情况下处理一个运行时间非常长的操作。这种情况通常会影响到性能,转载 2013-02-19 14:59:13 · 5931 阅读 · 1 评论 -
C# ref out
ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。class testref{private testint(int i){i = 50;}private testrefint(ref int i){i = 50;}private testoutint(out int i);{原创 2012-03-23 09:10:57 · 543 阅读 · 0 评论 -
C# treeview控件
C# treeview控件的使用方法步骤之一:首先当窗体加载的时候,我们添加上图中所示的节点。C# treeview控件的使用方法步骤之二:当点击“Delete the Selected”按钮时,被选中的节点将被删除。当点击“Edit the Selected”按钮式,被选中的节点变成修改状态,此时我们可以对其修改。 其代码如下:private转载 2012-08-14 09:05:28 · 886 阅读 · 0 评论 -
C# 多线程
简单多线程:1.编写线程执行函数private int m_itest = 10;如:private void threadFun(){//线程停止1秒::不会影响主线程Thread.sleep(1000);m_itest = 101;}2.建立线程并开启Thread thread = new Thread(threadFun);thread.Star原创 2012-05-10 09:19:52 · 538 阅读 · 0 评论 -
安装反编译工具 Reflector
1.需要安装.net FarmeWork 42.装.net FarmeWork 4时,产生阻滞的问题 必须安装32位windows映像处理组件wic安装下面路径的该文件:wic_x86_chs.exe1.2MB Downloadhttp://www.microsoft.com/download/en/details.aspx?displaylang=en&id=32原创 2012-02-24 13:17:39 · 698 阅读 · 0 评论 -
从.NET1.1升级到.NET2.0时出现的PInvokeStackImbalance错误
从.NET1.1升级到.NET2.0时出现的PInvokeStackImbalance错误微软官方的解释(http://msdn2.microsoft.com/zh-cn/library/0htdy0k3.aspx)如果 CLR 检测到平台调用之后的堆栈深度与 DllImportAttribute 属性指定的调用约定中以及托管签名的参数声明中提供的预期堆栈深度不匹配,则将激转载 2012-02-24 11:13:36 · 1275 阅读 · 0 评论 -
C# 虚函数
若一个实例方法声明前带有virtual关键字,那么这个方法就是虚方法。虚方法与非虚方法的最大不同是,虚方法的实现可以由派生类所取代,这种取代是通过方法的重写实现的(以后再讲)虚方法的特点:虚方法前不允许有static,abstract,或override修饰符虚方法不能是私有的,因此不能使用private修饰符虚方法的执行:我们知道一般函数在编译时就静态地编译到了执行文件中转载 2012-02-16 15:23:31 · 724 阅读 · 0 评论 -
C#事件机制:委托__事件
特殊的委托----事件:C#事件的机制.先来了解一下事件是什么. 学习事件之前,要把事件看成委托的一种特殊形式!这是因为面向对象在语言层是抽象的,(更高一层就是面向接口,此概念更加抽象化)所以,我们可以想象真实的世界,把现实中的一些东西放大来看本质,比如一个人饿了就需要吃饭,那么就要用很委托去关联”饿了”和”吃饭”这两个动作,一旦”饿了”就触发“吃饭“这个事件,至于如果吃什么东西,如何吃那转载 2012-02-16 17:23:29 · 866 阅读 · 0 评论 -
给安装文件设定条件
1.在启动条件中添加启动条件,以注册表为例a.“添加注册表搜索”b.property 属性设TestRegeditc.Regkey 属性设Software\Microsoft\vsto runtime Setup\v2.0.50727 d.Root 属性设vsdrrHKLMe.Value 属性设MSI(以VS安装部署为例,输入自己要搜索的注册表信息)原创 2012-03-29 10:37:58 · 505 阅读 · 0 评论 -
C# 制作安装包
1 新建安装部署项目 打开VS,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也一样),然后点击确定。 2 安装向导 关闭后打开安装向导,点击下一步,或者直接点击完成。 3 开始制作 安装向导完成后即可进入项目文件夹: 双击"应用程序文件夹"在右边的空白处右击,选择添加->文件,将你的做的应用程序的可执行文件和相应的转载 2012-03-28 16:24:04 · 1195 阅读 · 0 评论 -
添加注册表搜索
添加注册表搜索在“启动条件编辑器”中选择“搜索目标计算机”节点。在“操作”菜单上选择“添加注册表搜索”。在“属性”窗口中,设置要查找的注册表项的“Root”和“RegKey”属性。下面的示例演示如何设置“RegKey”属性以在注册表中搜索 Visual Studio Tools for Office 2005 SE 运行时。Software\转载 2012-03-29 09:17:22 · 901 阅读 · 1 评论 -
C#实现系统托盘,C#窗体最小化时隐藏为任务栏图标
C#实现系统托盘,C#窗体最小化时隐藏为任务栏图标的Window appllication 1.设置窗体属性showintask=false 2.加notifyicon控件notifyicon1,为控件notifyicon1的属性icon添加一个icon图标。 3.添加窗体最小化事件(首先需要添加事件引用): // this.sizechanged += new s转载 2012-03-30 16:50:28 · 806 阅读 · 0 评论 -
C#中继承带参构造函数
使用关键字base。例: class A { public A(){} public A(int i){} A(string str){} } class B:A { public B() : base(1) { } }若不+base,则A的构造函数始终走原创 2012-03-16 14:41:01 · 5836 阅读 · 0 评论 -
VS制作安装程序
1.新建一个安装程序2.添加项目输出,选择自己的项目3.根据需要创建开始程序启动项以及桌面快捷方式4.在桌面快捷方式中可修改图标5.生成执行文件原创 2012-03-19 08:55:13 · 424 阅读 · 0 评论 -
C# 释放内存
强制释放不必要内存GC.Collect();原创 2012-03-21 10:41:30 · 920 阅读 · 0 评论 -
C# 排序 List.Sort
1.先写一个继承类IComparer,重载比较函数Compare,写自定义的比较方法。例: public class CPointComparer : IComparer { public int Compare(Point p1, Point p2) { if (p1.X > p2.X)原创 2012-03-21 16:12:58 · 786 阅读 · 0 评论 -
C# 判断大小写是否按下
1. [DllImport("user32.dll", EntryPoint = "GetKeyboardState")] public static extern int GetKeyboardState(byte[] pbKeyState);//大小写状态 byte[] bs = new byte[256];原创 2012-03-21 14:06:25 · 2615 阅读 · 0 评论 -
dll传递stl注意
转自:http://www.cnblogs.com/lidabo/archive/2013/09/04/3300327.htmlSTL跨平台调用会出现很多异常,你可以试试.STL使用模板生成,当我们使用模板的时候,每一个EXE,和DLL都在编译器产生了自己的代码,导致模板所使用的静态成员不同步,所以出现数据传递的各种问题,下面是详细解释。原因转载 2013-09-11 14:04:50 · 4641 阅读 · 0 评论