- 博客(19)
- 资源 (7)
- 收藏
- 关注
转载 sql table data copy to exel using vba
http://support.microsoft.com/kb/110588 http://support.microsoft.com/kb/200427 http://support.microsoft.com/default.aspx?scid=kb;en-u
2011-08-23 17:52:05 562
转载 PE文件格式分析
在shellcode的编写过程中,关于API的定位会涉及到“exe”和“dll”文件格式问题,下面给一详细说明:PE文件结构 PE文件格式被组织为一个线性的数据流,它由一个MS-DOS头部开始,接着是一个是模式的程序残余以及一个PE文件标志,这之后紧接着PE文件
2011-08-22 15:45:43 725
转载 C#内存管理(十)
谨防静态变量class Counter { private static int s_Number = 0; public static int GetNextNumber () { int newNumber = s_Number; // D
2011-08-22 14:13:52 523
转载 C#内存管理(九)
IDisposible使用IDisposable接口的Dispose()方法做清理工作。因此如果我们有一个ResouceUser的类使用到了终结器(finalizer),如下:public class ResourceUser { ~ResourceUser (
2011-08-22 14:13:22 614
转载 C#内存管理(八)
图接下来让我们从垃圾回收器的角度来看一下内存管理。如果我们想清理一下没用的东西我们可能需要计划一下怎么做才更有效率。很明显,我们需要先区分什么是垃圾,什么不是垃圾。那么我们要先做一个假设:任何东西如果没有用了那么就认为是垃圾。幸好我们身边有两位好朋友:即时编译器(JIT)和统
2011-08-22 14:12:34 435
转载 C#内存管理(七)
一般来说,我们总是想克隆一个引用类型和拷贝一个值类型。记住这点将有助于你解决调试时发生的错误。让我们更进一步分析并清理一下Dude类实现,使用ICloneable接口来代替CopyDude()方法。public class Dude : ICloneable { p
2011-08-22 14:12:03 425
转载 C#内存管理(六)
Ted : Dude!, I have a Red shoe on my right foot, and a Red on my left foot明显Red shoe在Bill的脚上是错误的。为什么会这样呢?看一下图因为 我们使用Shoe作为一个引用类型来取代值类型。当一个引用
2011-08-22 14:11:36 445
转载 C#内存管理(五)
为什么是这样的结果呢?我们来看一下程序过程:如果我们没传递Thing对象的引用,那么我们将得到相反的结果。拷贝和不拷贝首先我们查看值类型,请使用下面的类和结构体。我们拥有一个Dude类包含个Name元素和2个Shoe。我们还有一个CopyDude()方法去产生一个新的
2011-08-22 14:11:08 449
转载 C#内存管理(四)
这种方法就更有效的进行操作内存,其实我们并不需要拷贝这块内存。当我们传递的是值类型的引用,那么程序修改这个引用的内容都会直接反映到这个值上。传递引用类型传递引用类型参数有点类似于前面的传递值类型的引用。public class MyInt { publi
2011-08-22 14:10:39 408
转载 C#内存管理(三)
参数当我们开始调用一个方法的时候,发生了什么呢?1.在栈中分配我们方法所需的空间,包括回调的指针空间,该指针通过一条goto指令来回到函数调用开始的那个栈位置的下一个位置,以便继续执行。2.我们方法的参数将被拷贝过来。3.控制器通过JIT方法和线程开始执行代码,因
2011-08-22 14:10:09 533
转载 C#内存管理(二)
这个操作发生在栈的顶部,请注意我们看到已经有很多成员之前被压入到栈中了。首先是方法的本身先被压入栈中,紧接着是参数入栈。然后是通过AddFive()里面的指令来执行函数。函数执行的结果同样也需要分配一些内存来存放,而这些内存也分配在栈中。函数执行结束后,就要将结果返回。最后,通过
2011-08-22 14:09:39 469
转载 C#内存管理一
尽管在.net framework中我们不太需要关注内存管理和垃圾回收这方面的问题,但是出于提高我们应用程序性能的目的,在我们的脑子里还是需要有这方面的意识。明白内存管理的基本行为将有助于我们解释我们程序中变量是如何操作的。在本文中我将讨论栈和堆的一些基本知识,变量的类型和某些变
2011-08-22 14:08:57 466
转载 VC调试篇
设置为了调试一个程序,首先必须使程序中包含调试信息。一般情况下,一个从AppWizard创建的工程中包含的Debug Configuration自动包含调试信息,但是是不是Debug版本并不是程序包含调试信息的决定因素,程序设计者可以在任意的Configuration中增加调
2011-08-20 14:14:41 569
转载 VS2010中的调试技巧
这是我的博客中关于VS 2010和.NET 4发布系列的第二十六篇文章。今天的博文将介绍Visual Studio中的一些实用调试技巧。这是受我朋友Scott Cate (他发表过几十篇很棒的VS技术文章) 启发。他最近告诉我,许多Visual Studio下的程序员,甚至一
2011-08-20 10:16:07 491
转载 VS2010演练:在设计时调试
您可以使用 Visual Studio“即时”窗口在没有运行应用程序的情况下执行函数或子例程。 如果函数或子例程包含断点,Visual Studio 将在适当的点中断执行。 然后,您就可以使用调试器窗口检查您的程序状态。 此功能称为设计时调试。下面的过程显示了如何使用此功能。
2011-08-20 10:15:11 1055 1
转载 Visual Studio调试之断点进阶篇
在上一篇文章Visual Studio调试之断点基础篇里面介绍了什么是断点,INT是Intel系列CPU的一个指令,可以让程序产生一个中断或者异常。程序中如果有中断或者异常发生了以后,CPU会中断程序的执行,去一个叫做IDT的部件查找处理这个中断(或者异常)的例程(Handl
2011-08-20 10:11:24 614
转载 [SQL Server]关于标识列从1开始计数的问题
在SQL Server中, 我们有时需要在清空数据表之后,重新添加记录时,标识列重新从1开始计数。 我们只需要在插入记录之前,执行下面的命令:DBCC CHECKIDENT ('表名', RESEED, 0) ---------------------
2011-08-18 15:11:19 916
转载 如何在 Visual C# .NET 中使用 SqlDataAdapter 对象更新 SQL Server 数据库
本文包含 Microsoft Visual C# .NET 代码示例,这些示例演示如何通过“SqlDataAdapter”对象,用运行在“DataSet”对象上的数据修改来 更新 SQL Server 数据库,其中“DataSet”对象使用该数据库中某个表的数据进行填充。
2011-08-18 13:26:18 1341
转载 垃圾回收和资源管理 --IDispose~~转帖
在前面说了GC的工作原理。需要注意的是,GC只能回收托管堆中的资源。其他一些非托管资源,比如文件资源,缓冲区,互斥体之类,无法通过GC自动回收。必须通过开发人员自己编程实现对其的回收(有时候会觉得CLR的资源管理也会比较麻烦,因为它有一部分自动的,有用一部分手动的,但和C++比比
2011-08-04 13:16:46 919
英语 考研 资料 熟词僻义 真题常考
2009-04-14
考研英语资料2 单词篇 经验
2009-04-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人