CLR via C# 读书笔记2-4 追记

《CLR via C#》CLR基础 CLR是公共语言运行库(Common Language Runtime),又叫公共语言运行时。CLR和Java虚拟机一样也是一个运行时环境,是一个可由多种编程语言使用的运行环境,可由面向CLR的所有语言使用。它负责资源管理(内存分配和垃圾收集等),并保证应用和底层操作系统之间必要的分离。 .NET框架是一种以CLR为基础、支持多种语言(C#、F#、VB.NET、C++、Python等)的开发的软件... 阅读详情
使用程序集连接器 (Assembly Linker)

除了使用 C# 编译器,你也可以使用 Assembly Linker 工具(AL.exe)来作成包含多个模块(这些模块可以是不同开发语言编译器编译的产物)的程序集。通过这种方法能够生成纯资源程序集 (术名: satellite assemblies),专门用来对应本地化。再次拿前文生成MultiFileLibrary.dll的例子来说明,这次我们改用以下编译命令:

csc /t:module RUT.cs
csc /t:module FUT.cs
al /out: MultiFileLibrary.dll /t:library FUT.netmodule RUT.netmodule

图 2-3 显示了这些命令产生的结果

本例中先生成了2个模块 RUT.netmodule, FUT.netmodule,然后合并成 MultiFileLibrary.dll。这个程序集由3个文件组成: MultiFileLibrary.dll, RUT.netmodule, 以及FUT.netmodule。
通过使用不同的 /t[arget] 参数,AL.exe 工具能够生成 CUI, GUI, 以及 Windows Store app PE 文件。另外在生成可执行文件(EXE)时,你可以通过 /main 命令行来指定哪个模块的哪个函数作为入口(Main)函数。

csc /t:module /r:MultiFileLibrary.dll Program.cs
al /out:Program.exe /t:exe /main:Program.Main Program.netmodule

这个入口函数在IL 中名为 __EntryPoint,如下代码段:

.method privatescope static void __EntryPoint$PST06000001() cil managed
{
	.entrypoint
	// Code size 8 (0x8)
	.maxstack 8
	IL_0000: tail.
	IL_0002: call void [.module 'Program.netmodule']Program::Main()
	IL_0007: ret
} // end of method 'Global Functions'::__EntryPoint
向程序集追加资源文件

使用 AL.exe 的 /embed[resource] 开关能够把一个文件作为资源加入到程序集中(加入时 ManifestResourceDef 表会被更新),该文件的内容会嵌入到PE 文件中。
AL.exe 也支持 /link[resource] 开关,也是把一个包含资源的文件组入进程序集中,但是 /link[resource] 开关更新ManifestResourceDef 以及 FileDef 表,资源文件并不嵌入到程序集的 PE 文件中,它依然保持独立。CSC.exe 也有类似 AL.exe 的功能,对应的命令开关分别为 /resource 和 /linkresource。

最后提一下标准的 Win32 资源:这些资源也能够被AL.exe 或 CSC.exe组入进程序集中,只需要使用 /win32res 命令行开关并传入 .res 文件路径。另外使用 /win32icon 开关能便捷地组入标准 Win32 图标资源。在 Visual Studio 中,打开工程属性的程序选择卡可以追加资源文件。

提示:托管程序集包含有 Win32 manifest 资源信息,缺省情况下 C# 编译器自动生成这些 manifest 信息,但是你可以使用  /nowin32manifest 开关来阻止它。
C# 编译器生成的缺省manifest 信息如下:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
	<assemblyIdentity version="1.0.0.0" name="MyApplication.app" />
	<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
		<security>
			<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
				<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
			</requestedPrivileges>
		</security>
	</trustInfo>
</assembly>

 

《CLR via C#》学习笔记【1】 一、CLR的执行模块1.1 将源代码编译成托管模块 非托管C/C++可对系统进行低级控制,按自己的想法管理内存、VB可以快速生成UI应用程序,并控制COM对象和数据库。 公共语言运行时(Common Language Runtime, CLR)是一个由多种编程语言使用的“运行时”。CLR的核心功能(如内存管理、程序集加载、安全性、异常处理和线程同步)可由面向CLR的所有语言使用。 事实上在运行 阅读详情

相关推荐

CLR via C#(一)CLR的执行模型

CLR全称Common Language Runtime,即公共语言运行时。它可以为所有面向CLR的语言提供运行时的内存管理、程序集加载、安全性、异常处理和线程同步等功能。

夜槿笙歌的博客 1132

【亲测免费】 深入探索.NET CLR:《CLR via C》第4版资源推荐

深入探索.NET CLR:《CLR via C#》第4版资源推荐 【下载地址】CLRviaC第4版中英文版资源下载 - **书名**: CLR via C# 第4版- **语言**: 中文版 & 英文版- **格式**: PDF- **特点**: 高清无水印 ...

gitblog_09724的博客 786

CLR via C#: 4th Edition with Full Table of Contents

CLR是.NET平台的运行时引擎,它负责管理代码的执行,提供了诸如内存管理、线程同步、异常处理等运行时服务。CLR使得.NET支持的编程语言可以在相同的虚拟环境中运行,而与底层操作系统和硬件平台无关。这种特性使得.NET应用程序具有良好的可移植性。.NET类型系统是建立在值类型和引用类型这两个概念上的。值类型直接存储数据,而引用类型存储对数据(对象)的引用。理解这两种类型的区别及其转换是管理内存和编写高效代码的关键。.NET 允许开发者创建自定义异常类,这些类通常继承自类。

weixin_35257663的博客 924

CLR基础之一---认识CLR [《CLR via C#》读书笔记]

《CLR via C#》读书笔记 什么是CLR CLR的基本概念 通用语言运行平台(Common Language Runtime,简称CLR)是微软为他们的.Net虚拟机所选用的名称。这是通用语言架构(简称CLI)的微软实现版本,它定义了一个代码运行的环境。CLR运行一种称为“通用中间语言”的字节码,这个是微软的通用中间语言实现版本。 CLR运行在微软的视窗操作系统上...

weixin_30872499的博客 2241

《CLR via C# 第四版》配套示例源码深入分析

NET类型系统允许开发者使用两种类型的对象:引用类型和值类型。引用类型存储在堆上,而值类型存储在栈上或作为结构体的成员存储在堆上。引用类型包括类、接口、委托、数组等;值类型包括基本数据类型、枚举以及结构体。.NET允许开发者创建自己的异常类型,以便更加具体地表示应用程序中可能发生的特定错误。自定义异常通常继承自类或其子类。创建自定义异常时,推荐在构造函数中使用来调用基类的构造函数,以便提供有用的错误信息。

weixin_35752122的博客 1073

CLR via C#(第3版)中英文双语带书签及源码完整版

CLR(Common Language Runtime)是.NET程序的执行引擎,负责管理代码的加载、编译、执行与资源回收。其核心组件包括JIT编译器、垃圾回收器(GC)、类型系统、异常处理机制和安全引擎,共同构成托管执行环境。// 示例:一个简单的托管程序入口");该代码在运行时由CLR完成程序集加载 → JIT编译 → 托管执行 → 内存自动管理的全生命周期控制,体现其对开发者透明但底层高度可控的特性。场景推荐做法频繁创建大数组改用复用缓冲区。

weixin_33608403的博客 914

CLR via C 第4版 PDF资源介绍

CLR via C# 第4版 PDF资源介绍 【下载地址】CLRviaC第4版PDF资源介绍 《CLR via C#》第4版PDF资源为您提供了深入.NET平台底层架构和C#语言高级特性的详尽指南。本书共计700多页,涵盖CLR核心概念,如内存管理、异常处理、垃圾回收机制、类型系统及程序集加载与执行等。通过学习,您将更深...

gitblog_06727的博客 569

《CLR via C# 最完整中文版》电子书下载种子

本文还有配套的精品资源,点击获取 简介:《CLR via C#》是Jeffrey Richter撰写的深入介绍.NET CLR内部机制的经典书籍。中文版为中文读者提供了学习.NET开发核心技术的良机。书中详细讲解了.NET类型系统、内存管理、JIT编译、异常处理、多线程编程、反射、元数据、安全模型等关键知识点,并结合案例理论与实践,帮助开发者编写出更高效、可靠的.NET程序...

weixin_35433448的博客 1328

《CLR Via C#》第一章

大致介绍了CLR执行应用程序的流程,编译代码流程,介绍了IL、元数据和程序集的关系。

weixin_51374560的博客 964

Intel MKL库常用模块的C语言实现

文章目录1. 随机数生成1.1 等概率的01分布 viRngUniform1.2 (复)高斯分布 vsRngGaussian2. 向量-向量运算2.1 向量数乘与加法 cblas_caxpby2.2 向量内积 cblas_cdotu_sub2.3 向量范数 cblas_scnrm23. 矩阵-向量运算3.1 矩阵存储方案3.2 矩阵-向量乘法 cblas_cgemv4. 矩阵-矩阵运算4.1 矩阵...

月半 月半的博客 4649

STM32F103开发实战:如何用CubeMX+CLion调整Flash起始地址(附完整CMake配置)

本文详细介绍了在STM32F103开发中如何使用CubeMX和CLion工具链调整Flash起始地址,包括链接脚本修改、系统文件配置和CMake工程适配。通过实战步骤和完整配置示例,帮助开发者实现固件双备份、OTA升级等高级功能,提升嵌入式开发效率。

5b6n7m8的博客 209

《CLR Via C#》第二章

解释如何生成仅供自己的应用程序使用的程序集

weixin_51374560的博客 613

MTK平台LCD驱动开发实战:从零开始点亮你的Android屏幕

本文详细介绍了在MTK平台进行Android LCD驱动开发的完整流程。从理解LK与Kernel双核驱动框架入手,手把手讲解驱动结构体、屏幕参数配置、初始化序列编写以及PLL_CLOCK计算等核心步骤,并提供了系统集成配置与实用的调试避坑指南,帮助开发者高效点亮新屏幕。

terraform7cloud的博客 291

CLR via C# 读书笔记目录

一口气写了CLR via C# 两章的笔记,有些内容自己也似懂非懂,有些则觉得很好很强大,所以趁此机会作个目录同时为每篇文章打个评分:  纯理论,无聊 有参考价值,可看 有实用价值,必看 CLR via C# 读书笔记1-1: 托管模块 (Managed Modules)定义 CLR via C# 读书笔记1-2:程序集(Assemblies)定义 CLR via C# 读书笔记1-3

sqlchen的专栏 909

[Python] 如何使用 Python 调用 Dify 工作流服务实现自动化翻译

本文介绍了如何使用Python调用Dify的API实现文本翻译自动化。Dify作为AI开发平台,其工作流功能可执行文本处理、翻译等任务。选择Python调用Dify的优势在于职责划分清晰:Dify专注AI服务,Python处理文件操作等非AI任务。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 1094

5、癌症数据预处理技术与深度学习在癌症预测中的应用

本文详细介绍了癌症数据预处理技术和深度学习在癌症预测中的应用。针对CT扫描图像、X射线图像、超声图像、基因表达数据和文本数据等不同类型的癌症数据,分别阐述了去噪、插值、配准、归一化等预处理技术的具体方法。同时,分析了深度学习在乳腺癌、白血病和宫颈癌预测中的作用,结合相关影响因素探讨了模型的应用潜力。此外,还总结了深度学习在癌症预测中面临的挑战及未来发展方向,为癌症的早期诊断与精准预测提供了理论支持和技术参考。

alice7model的博客 123

CLR via C# 第一章—第十三章

方法、构造函数、索引器或委托的定义可以指定其形参为必需还是可选。任何调用都必须为所有必需的形参提供实参,但可以为可选的形参省略实参。每个可选形参都有一个默认值作为其定义的一部分。如果没有为该形参发送实参,则使用默认值。

2301_79124729的博客 1198

2026华为OD机试 新系统真题题库目录|机考题库 + 算法考点详解

华为OD机试 新系统真题题库目录|机考题库 + 算法考点详解华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2026e卷,od机试,2026E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2026华为od,如何备战华为od,华为od算法,华为od手撕代码,华为OD机试2024年最新题库,

KJ.JK 4680

【免费下载】 CLR via C 第4版(中英文版) 资源下载

CLR via C# 第4版(中英文版) 资源下载 【下载地址】CLRviaC第4版中英文版资源下载 - **书名**: CLR via C# 第4版- **语言**: 中文版 & 英文版- **格式**: PDF- **特点**: 高清无水印 ...

gitblog_09733的博客 1294

Spring AI Alibaba Agent开发实战:DeepResearch Agent调度系统

智能Agent调度系统通过专业化分工解决传统AI系统的三大痛点:通用模型专业性不足、处理效率低下和资源浪费。系统采用分层架构设计,核心组件包括智能调度器、Agent选择辅助器和集成工具类,实现问题分类、专业Agent匹配和搜索策略优化的全流程自动化。系统特点包括:1)配置驱动的灵活扩展;2)分层回退的容错机制;3)支持工具调用与传统搜索的智能切换。该架构通过策略模式和依赖注入等技术,在保证稳定性的同时显著提升了研究质量和效率,为企业级多Agent协作提供了完整解决方案。(149字)

wjianwei666的专栏 501

Python爬虫实战:用最新技术高效下载摄影网站图片

本文将深入探讨如何利用Python最新技术栈构建一个功能完整的摄影网站图片爬虫。我们将使用异步编程、智能反爬策略和现代化工具,实现高效、可靠的图片下载系统。高性能异步架构:使用asyncio实现高并发下载智能反爬策略:支持多种反爬措施和浏览器模拟多网站适配:可解析多种摄影网站结构数据管理:完整的下载记录和统计功能扩展性强:支持代理、分布式等高级功能用户友好:提供进度显示和详细日志。

2201_76125261的博客 1644

CLR via C 第四版示例源码

CLR via C# 第四版示例源码 【下载地址】CLRviaC第四版示例源码 探索.NET底层奥秘,深入理解C#与CLR的交互机制!《CLR via C# 第四版》示例源码为您提供了书中所有关键概念的实践代码,帮助您将理论知识转化为实际技能。源码按章节组织,涵盖公共类库和解决方案文件,方便您快速上手。只需配置好.NET...

gitblog_06773的博客 379

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

NET CLR via C#读书笔记 - 第一章 CLR执行模型

NET CLR via C#读书笔记 - CLR执行模型CLR执行模型1.1 CLR简介1.2 CLR执行模型1.2.1 将源代码编译成托管模块 CLR执行模型 1.1 CLR简介 CLR(Common Language Runtime(公共语言运行时))可以简单理解为是一个支持多种编程语言及多语言互操作,完整的高级虚拟机。   程序在运行的时候有着惊人数量的运行时依赖。每个有用的程序都需要某些运行时函数库,以便其能跟电脑的其它资源(如用户输入设备,磁盘文件,网络通信等)交互,同时程序也需要转换成计算机硬

CreateNewWorld的博客 471

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

《CLR Via C#》第四版英文原版PDF下载基于.net4.5和Windows8

CLR via C# 4th Edition.pdf 电子书下载,《CLR Via C#》第四版英文原版PDF下载基于.net4.5和Windows8 下载《CLR via C# 4th Edition.pdf》

最慢的光 8039

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

《CLR via C#》笔记:第1部分 CLR基础

C#入门书籍,这本书其实更像是“字典”,所以我就对重点内容以及其中专业术语进行了补充和总结,其余内容只提供了一个页数索引。开篇三章主要讲了CLR原理以及打包相关的原理。

sugarsama的博客 1050

《CLR via C#》 第三版的主要内容

Jeffrey Richter 在他的博客中叙述了 CLR via C#第三版的主要内容,和改动。原本如下:(必要的地方加了翻译) Last week I submitted the reaming chapters for my new book. It is now being edited and should be available right around the time th...

weixin_30408309的博客 433
上一篇: CLR via C# 读书笔记2-4
下一篇: CLR via C# 读书笔记2-5
sqlchen
博客等级 码龄24年 10粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值