c#学习读书笔记《1》

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),模块,构建配件,创建共享配件,使用全局配件缓存等内容,在此不再祥述^^



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值