随笔分类 - 02 C#/.NET
摘要:微软有个软键盘,可以通过命令行输入osk调出来。 有时候我们想自己模拟几个键盘按键,怎么办?其实Win32 API中有一个keybd_event可以模拟键盘按键的输入。以C#语言为例。
阅读全文
摘要:我们在使用c#托管代码时,内存地址和GC回收那不是我们关心的,CLR已经给我们暗箱操作。 但是如果我们在c#中调用了一个非托管代码,比如vc的DLL,而且他有个回调函数,需要引用c#中的某个对象并操作, 这时候你就得要小心了。
阅读全文
摘要:一个简单的例子实现VB6中访问C# dll中的方法、属性以及事件。
阅读全文
摘要:All the patterns: 0 MM/dd/yyyy 08/22/2006 1 dddd, dd MMMM yyyy Tuesday, 22 August 2006 2 dddd, dd MMMM yyyy HH:mm Tuesday, 22 August 2006 06:30 3 dddd, dd MMMM yyyy hh:mm tt Tuesday, 22 August 2006 06:30 AM 4 dddd, dd MMMM yyyy H:mm Tuesday, 22 August 2006 6:30 5 dddd, dd MMMM yyyy h:mm tt Tuesday, 22 August 2006 6:30 AM 6 dddd, dd MMMM yyyy HH:mm:ss Tuesday, 22 August 2006 06:30:07 7 MM/dd/yyyy HH:mm 08/22/2006 06:30 8 MM/dd/yyyy hh:mm tt 08/22/2006 06:30 AM 9 MM/dd
阅读全文
摘要:引自MSDN:http://msdn.microsoft.com/en-us/library/h9y3s0bh(VS.71).aspx The icon specified in the AddRemoveProgramsIcon property for the selected deployme...
阅读全文
摘要:在打包项目中添加文件msiexec.exe(一般在c:\windows\system32(系统目录中)找到)。 在文件系统视图中选择应用程序文件,在msiexec.exe上单击右键选择“创建快捷方式”,重命名快捷方式为“uninstall”. 更改此快捷方式Argmuments为“/x {产品ID}”,产品ID的值为打包项目的ProductCode属性值。 注:ProudctCode(选择解决方案资源管理根目录如Setup1,再查看属性标签,不是右键属性)
阅读全文
摘要:在SSIS中,经常会遇到导带有Identity的字段,Identity字段是不允许插入的。有一个笨方法可以实现,先把目的数据表的Identity 字段设置成No,等导完数据后再设回来。当然这样做很麻烦也很容易出错。其实是可以通过设置来完成的。
阅读全文
摘要:在做SSIS项目的Data Coversion时,经常会遇到类似这样的问题: The column “xxx” cannot be processed because more than one code page (1252 and 936) are specified…
阅读全文
摘要:今天工作中遇到一个问题,需要将一个DataGridView中的某一行拖拽到另一个DataGridView中,在网上搜了一遍,大多是从DataGridView拖拽到TextBox等控件,没有拖拽到 DataGridView中的。拖拽到TextBox很容易,但拖拽到DataGridView就有一个问题:如何决定拖拽到DataGridView中的哪一个Cell? 为此研究了两个小时,终于找到了答案。
阅读全文
摘要:一个加解密算法的类,如下:
阅读全文
摘要:classReceiver{publicReceiver(Sendersender){sender.Event+=newSender.EventHandler(OnEvent);}privatevoidOnEvent(objectsender){Console.WriteLine("Received...
阅读全文
摘要:复制: private void button1_Click(object sender, System.EventArgs e) { // Takes the selected text from a text box and puts it on the clipboard. if(textBox1.SelectedText != ”") Clipboard.SetDataObject(textBox1.SelectedText); }
阅读全文
摘要:我们在编程的时候,有时会使用多线程来解决问题,比如你的程序需要在后台处理一大堆数据,但还要使用户界面处于可操作状态;或者你的程序需要访问一些外部资源如数据库或网络文件等。这些情况你都可以创建一个子线程去处理,然而,多线程不可避免地会带来一个问题,就是线程同步的问题。如果这个问题处理不好,我们就会得到一些非预期的结果。
阅读全文
摘要:大家都知道,C#中的string是一个引用类型,String对象是存放在堆上,而不是堆栈上的,因此,当把一个字符串变量赋给另一个字符串时,会得到对内存中同一个字符串的两个引用。但是大家有没有想过,为什么修改其中一个字符串,另外一个不受影响呢? 原来,当我们把一个字符串变量赋给另一个字符串时,就会创建一个全新的String对象,就是说这个时候就会有两个对象,比如:
阅读全文
摘要:虚方法和抽象方法都可以供派生类重写,它们之间有什么区别呢? 1. 虚方法必须有实现部分,抽象方法没有提供实现部分,抽象方法是一种强制派生类覆盖的方法,否则派生类将不能被实例化。如: //抽象方法 public abstract class Animal { public abstract void Sleep(); public abstract void Eat(); } //虚方法 public class Animal { public virtual void Sleep(){} public virtual void Eat(){} } 2. 抽象方法只能在抽象类中声明,虚方法不是。其实如果类包含抽象方法,那么该类也是抽象的,也必须声明为抽象的。如:
阅读全文
摘要:什么是委托 首先要知道什么是委托,用最通俗易懂的话来讲,你就可以把委托看成是用来执行方法(函数)的一个东西。 如何使用委托 在使用委托的时候,你可以像对待一个类一样对待它。即先声明,再实例化。只是有点不同,类在实例化之后叫对象或实例,但委托在实例化后仍叫委托。 声明,如: 1 namespace Vczx.ProCSharp.Exc 2 { 3 delegate double MathsOp( double x ); 4 //class defination here 5 } 这就声明了一个委托,意义:任何一个返回值为double,且只有一个形参为double的函数,都可以用这个委托来调用。
阅读全文
摘要:当你把dll加入到GAC后,调试的时候系统会先去GAC中去找,为了实现调试,我们每次修改程序编译后,都要把它重新加到GAC中,比较繁琐。起始我们可以用另一种方法来避免这种繁琐。 1、添加一个环境变量DEVPATH,value为要调试的dll文件的路径,如c:\debug\ 2、在C:\WINNT\Microsoft.NET\Framework\v1.1.4322\CONFIG\machine.config文件中加入如下片断:
阅读全文
摘要:前言: 最近,有几个朋友反映句柄的概念很难理解,下面我就把我对句柄的理解写出来,大家可以参考一下,如有什么不对的地方,肯请来函指正。 正文: 《Michrosoft Windows 3 Developer's Workshop》(Microsoft Press,by Richard Wilton)一书中句柄的概念是这样的:在Windows环境中,句柄是用来标识项目的,这些项目包括:模块(module)、任务(task)、实例(instance)、文件(file)、内存块(block of memory)、菜单(menu)、控制(control)、字体(font)、资源(resource),包括图标(icon),光标(cursor),字符串(string)等、GDI对象(GDI object),包括位图(bitmap),画刷(brush),元文件(metafile),调色板(palette),画笔(pen),区域(region),以及设备描述表(device context)。 在《Windows 编程
阅读全文
摘要:当我们用Application Wizard生成一个新的项目时,MFC会自动为我们产生不少的程序文件,那么这些文件都是干什么用的呢?在这里,我把它们向大家介绍一下,希望对一些初学VC的朋友有些帮助,老鸟们就不用浪费时间了,呵呵! 其实生成项目完成之后,我们会在项目目录里面发现一个readme.txt文件,项目所生成的程序文件在这里都有介绍,不过一般都是英文的。Application Wizard产生项目的同时,也展现了MFC机制为我们打下的程序框架,更为我们提供了用以扩展的程序。 依据不同的选项,产生的文件也有所不同,以下是Application Wizard产生的标准程序文件(假设项目名称为ExMFC),大致可以分为以下几类: ·工作区文件、项目文件和make文件 ·应用程序源文件和头文件 ·资源文件 ·预编译头文件 ·按可选项增加的AppWizard文件
阅读全文
摘要:今天,一个同事遇到了一个非常奇怪的问题,他的程序(C#)运用了Hyper-Threading技术,系统用的是Windows 2000 SP4,当程序运行时会随机的抛出一个异常,而且这个bug很不容易reproduce,最后动用了公司几个高手的力量,才找到原因。 原来,Hyper-Threading技术不是所有的系统都能很好的支持的,Windows 2000所有版本都不能很好的支持Hyper-Threading技术,如果是在Windows 2000下开发,最好在System BIOS Setup program中将Hyper-Threading禁掉。 Intel官方网站上是这样描述的: Operating System Support Microsoft* Windows* Operating System Based PCs The following desktop operating systems include optimizations for HT Technology and ar
阅读全文