1.设置环境变量: path =C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
2.helloworld.cs 第一个程序
namespace InsideCSharp
{
class HelloWorldConsoleApp
{
static void Main()
{
System.Console.WriteLine("hello,world");
}
}
}
cmd--> csc helloworld.cs -->helloworld.exe
namespace 可以嵌套
被引用时用 using A; 但是当引用多个名称空间时,类不能有歧义。可以完全限定。
3。了解底层代码MSIL
用dumpbin.exe实用程序查看(^^据说业界都用这个看二进制代码的内部)(在C:\Program Files\Microsoft Visual Studio 8\VC\bin下)
CMD-->dumpbin /HEADERS /CLRHEADER helloworld.exe
//*******************************ji
E:\study\2006\c#>dumpbin /headers /clrheader helloworld.exe
Microsoft (R) COFF Binary File Dumper Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
DUMPBIN : warning LNK4044: unrecognized option "clrheader"; ignored
Dump of file helloworld.exe
PE signature found
File Type: EXECUTABLE IMAGE
FILE HEADER VALUES
14C machine (i386)
3 number of sections
44708882 time date stamp Sun May 21 23:34:26 2006
0 file pointer to symbol table
0 number of symbols
E0 size of optional header
10E characteristics
Executable
Line numbers stripped
Symbols stripped
32 bit word machine
OPTIONAL HEADER VALUES
10B magic # //表明确实是一个合法的PE
8.00 linker version
400 size of code
600 size of initialized data
0 size of uninitialized data
234E RVA of entry point
2000 base of code
4000 base of data
400000 image base
2000 section alignment
200 file alignment
4.00 operating system version
0.00 image version
4.00 subsystem version
0 Win32 version
8000 size of image
200 size of headers
0 checksum
3 subsystem (Windows CUI)
400 DLL characteristics
RESERVED - UNKNOWN
100000 size of stack reserve
1000 size of stack commit
100000 size of heap reserve
1000 size of heap commit
0 loader flags
10 number of directories
0 [ 0] RVA [size] of Export Directory
2300 [ 4B] RVA [size] of Import Directory
4000 [ 2B0] RVA [size] of Resource Directory
0 [ 0] RVA [size] of Exception Directory
0 [ 0] RVA [size] of Certificates Directory
6000 [ C] RVA [size] of Base Relocation Directory
0 [ 0] RVA [size] of Debug Directory
0 [ 0] RVA [size] of Architecture Directory
0 [ 0] RVA [size] of Special Directory
0 [ 0] RVA [size] of Thread Storage Directory
0 [ 0] RVA [size] of Load Configuration Directory
0 [ 0] RVA [size] of Bound Import Directory
2000 [ 8] RVA [size] of Import Address Table Directory
0 [ 0] RVA [size] of Delay Import Directory
2008 [ 48] RVA [size] of Reserved Directory
0 [ 0] RVA [size] of Reserved Directory
SECTION HEADER #1
.text name
354 virtual size
2000 virtual address
400 size of raw data
200 file pointer to raw data
0 file pointer to relocation table
0 file pointer to line numbers
0 number of relocations
0 number of line numbers
60000020 flags
Code
Execute Read
SECTION HEADER #2
.rsrc name
2B0 virtual size
4000 virtual address
400 size of raw data
600 file pointer to raw data
0 file pointer to relocation table
0 file pointer to line numbers
0 number of relocations
0 number of line numbers
40000040 flags
Initialized Data
Read Only
SECTION HEADER #3
.reloc name
C virtual size
6000 virtual address
200 size of raw data
A00 file pointer to raw data
0 file pointer to relocation table
0 file pointer to line numbers
0 number of relocations
0 number of line numbers
42000040 flags
Initialized Data
Discardable
Read Only
Summary
2000 .reloc
2000 .rsrc
2000 .text
//********************************
为了研究c#和.net元素如何实现,用Framework SDK中的反汇编工具,ILDASM.
(ildasm.exe: C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin)
其他还有配件(assembly),模块,构建配件,创建共享配件,使用全局配件缓存等内容,在此不再祥述^^
分享到:
相关推荐
C#学习阅读笔记 本笔记总结了 C# 语言的基本概念、特点和重要知识点。C# 是一种类型安全的语言,专门用于 .NET Framework,具有强数据类型和面向对象的编程特点。下面是笔记的主要内容: 一、C# 语言概述 * C# 是...
在深入探讨"C#高级编程"的学习笔记之前,我们先来理解一下C#这门语言的基础。C#(读作"C sharp")是由微软公司开发的一种面向对象的编程语言,主要用于构建Windows应用程序、Web应用以及移动应用。它在.NET框架或...
《C#6.0学习笔记 从第一行C#代码到第一个项目设计》是一本针对初学者和进阶者深入理解C#编程语言的详细教程。该资源包含高清PDF文档,作者可能是周家安,专注于C# 6.0版本的新特性和实战应用。这个压缩包重约180MB,...
精心搜集整理的读书笔记,深入浅出,带有实例,适合各种层次的学习者,尤其适合c#初学者。
在学习过程中,阅读和理解"黑马程序员学习笔记.txt"这份文档至关重要。它可能包含了详细的代码示例、解释和练习,帮助你巩固所学知识。同时,建议配合实际编程实践,动手编写代码,因为实践是检验理解和掌握知识的...
本文将深入探讨C#集合的学习心得,并基于给出的部分内容进行详细阐述。 首先,数组作为基本的数据结构,有其固有的限制。数组大小在创建时即被固定,若需调整大小,必须借助`System.Array.Resize`方法,但这种方法...
【C#学习笔记(by sunyfun)】是一份由sunyfun个人整理制作的、涵盖了16天学习历程的C#编程电子图书。这份笔记深入浅出地讲解了C#语言的基础知识和进阶技能,是初学者入门C#编程的理想资料。通过这份笔记,读者可以...
《C#使用手册+C#学习笔记+C#基础教程》是一份综合性的学习资源,适合对C#编程感兴趣的初学者和进阶者。这份压缩包包含了三个核心文档:《C#基础教程-c_实例教程.doc》、《C#使用手册.doc》和《C#学习笔记.doc》,...
在C#语言中,学习和理解基础语法与概念至关重要,特别是方法、继承、重载、属性和索引器等核心特性。以下是对这些知识点的详细解释: 1. **方法**: - 方法是C#中封装代码逻辑的基本单元,它们可以被其他代码调用...
【标题】:“笔记本(C#)” 【描述】中的知识点主要涉及了C#编程语言以及在软件开发中...通过阅读和分析这些代码,开发者可以深入理解C#如何实现这样的文本编辑器应用程序,并从中学习到实用的编程技巧和最佳实践。
在C#编程语言中,`Console.WriteLine()`是一个基础的输出函数,用于在控制台打印指定的内容。例如,`Console.WriteLine("你想显示的内容。...通过苏坤的C#入门基础视频教程,学习者可以逐步建立对C#编程的扎实基础。
"很好的C#学习笔记"是一份宝贵的资源,对于想要深入理解和掌握C#语法及概念的人来说是不可或缺的。以下是基于标题、描述和提供的文件名所涵盖的一些关键知识点的详细解释。 首先,我们要探讨的是"C#数据类型"。C#中...
【C#学习笔记】 C#(读作"C sharp")是一种面向对象的编程语言,由微软公司开发,主要用于构建Windows应用程序、Web应用以及移动应用。它具有简洁的语法,高效性能,以及强大的.NET框架支持。C#的学习涵盖了基础...
根据提供的文件信息,我们可以推断出这是一份关于C#编程语言的学习笔记。接下来,我们将对这份学习资料涉及的关键知识点进行详细的解读与扩展。 ### C#简介 C#(读作“C sharp”)是一种现代的、面向对象的编程...
这份读书笔记汇总了C#.NET中常见的高效、便捷的函数和方法,旨在帮助开发者更好地理解和运用这些工具,提高代码质量和可维护性。 一、字符串操作 字符串在编程中扮演着重要角色,C#.NET提供了丰富的字符串处理方法...
总的来说,通过学习和使用C#,我们可以创建功能丰富的读书笔记和纪念日提醒应用,涵盖从基础编程概念到高级的面向对象设计,再到具体的Windows应用程序开发技术。在实践中,不仅需要掌握语法和API,还要理解软件工程...