运行软件出现IL范围il格式不正确确 什么意思

扫一扫下载手机客户端
扫描我,关注团购信息,享更多优惠
||网络安全
| | | | | | | | | | | | | | | |
||电子电工
汽车交通| | | | | | | | | |
||投资理财
| | | | | | | | | | | | | | | | |
| | | | | | |
| | | | | | | | | | | | | | | | | | |
| | | | | | |||
||外语考试
| | | | | | | | |
| 视频教程|
Microsoft.NET IL汇编语言程序设计
定价:¥45.00
原书名:Inside Microsoft .NET IL Assembler
原出版社:
ISBN:上架时间:出版日期:2003 年8月开本:16开页码:322版次:1-1
所属分类:
许多有关.NET编程的书籍大都致力于介绍进行快速应用软件开发(RAD)的高级语言,而本书则深入剖析.NET公共语言运行环境的内部结构和操作,并且介绍了怎样驾驭详细描述这些结构和操作的IL汇编语言。实际上,.NET公共语言运行环境所进行的任何工作,IL汇编语言都能够进行解释。通过本书,可以学习到设计和实现IL Assembler、比Disassembler及元数据验证工具的开发人员所需了解的有关IL汇编语言的各种内容。本书适用于编译器开发人员、多语言项目的开发人员及其他开发用于.NETFramework平台的更紧凑、快速代码的人员。想成为.NET高手,请读本书。
serge lidin是一位俄罗斯裔的加拿大人,在多个国家从事了20年软件开发工作。他工作过的编程语言和平台之多自己都已经记不清楚了,从事过的领域从天体物理学模型到工业过程仿真。以及金融系统中的事务处理,更是多种多样。最近几年中,他供职于microsoft.net公共语言运行环境组,负责设计和开发了
il assembler,il disassembler,元数据验证程序和执行引擎中的运行时元数据验证。
公共语言运行环境简介
开始简单示例
作为占位符的值类型
调用非托管代码
类的提前声明
为什么要写这本书
说实话,写这本书我责无旁贷。随着Microsoft.NET技术席卷全球,越来越多的信息技术人员开始涉足其中,涵盖这项技术各个方面的大量书籍也已经开始出现――恰如及时雨。然而,这些书籍都专注于将.NET作为一种高级编程语言和快速应用开发环境(BAD)进行讨论。无疑,这些内容非常重要,而且我相信这些书籍都要进行重印才能够满足大众的要求。但是,更深入的问题呢7
.NET领域与其他信息技术领域类似,都像是一个庞大的倒立的“金字塔”,根植在它的核心技术之上。.NET金字塔所仰赖的核心技术是公共语言运行环境(common language runtime)。这个运行环境会将中间语言(IL)二进制代码转换为特定平台的二进制机器代码,并且执行这些代码。位于运行环境之上的是.NETFramework类库、编译器以及类似于Microsoft Visual Studio.NET这样的环境。在它们之上的才是从辅助工具到面向终端用户的应用开发层。这个金字塔正在迅速地变高、变宽。
实际上,本书讲述的并不是公共语言运行环境――虽然运行环境是.NET金字塔的核心技术,但是它也是十分庞大的主题,以至于不可能在一本书的合理范围内对其进行详细描述。本书着重讨论另一个重要的主题:.NET IL Assembler(汇编语言)。IL汇编语言(简写为ILAsm)是一种低级语言,它专门用于描述公共语言运行环境的各种基本特性。如果运行环境具有这些特性,ILAsm就必须能够对其进行解释。
ILAsm与高级语言有所不同,而类似于其他汇编语言,它是平台驱动而非概念驱动的。汇编语言通常会与附属平台之间存在精确的语言映射,在目前的情况下,附属平台就是公共语言运行环境。事实上,这种映射非常精确,以至于这种语言可以用来描述运行环境的各个方面,这里的运行环境是指讲述.NET公共语言运行环境附属结构的ECMA标准化文档中所讨论的运行环境(ILAsm本身也是公共语言附属结构的一部分,也是这个标准化文档的一个主题)。由于这种关系密切的映射,如果不涉及附属平台的大量细节,也就不可能描述相应的汇编语言。所以,从某种程度上讲,这本书归根到底也是讨论了公共语言运行环境。
IL汇编语言在.NET开发者中非常流行。这并不是说所有的.NET开发者都喜欢使用ILAsm编程,而不喜欢使用Microsoft Managed C++、Microsoft Visual C#.NET或者Microsoft Visual Basic.NET,而是说所有的.NET开发者目前都会使用几Disassembler(ILDASM),而且许多人经常使用它。无论.NET开发者所偏好的语言和从事的开发领域是什么,在他们的计算机屏幕上都会有一个青色的闪电――ILDASM图标(对David Drake的默默赞扬)――在闪光。ILDASM文本的输出是什么?对,正是ILAsm源代码。
目前可以看到许多基于.NET编程的书籍都专注于高级编程语言,如Visual C#.NET或者Visual Basic.NET,或者是ADO.NET这样的技术,只是在有些时候会提到ILDASM,作为反汇编的可选工具,来分析.NETIL可执行程序的内部情况。但是这些书籍都没有解释这些反汇编文本的含义,以及怎样对它们进行解释。这是可以理解的,因为对这些书籍来说,对元数据结构和几汇编语言的详细描述都超出了其范围。
现在,读者可能已经明白写作这本书的意义了。因为我负责设计和开发ILAsm以及IL―DASM,所以我有责任详尽地层示它的魅力。
ILASm的历史
ILAsm和ILDASM的第1版(分别名为Asm和Dasm)由JonathanForbes在1998年初开发成功。当前的语言与它最初的形式已经有了很大的差异,它们所具有的惟一显著的公共特性就是伪指令关键字中的前导点号。这些汇编和反汇编工具最初是作为纯粹的内部工具而构建的,主要用来方便公共语言运行环境的持续开发;其在运行环境开发小组中得到了相当广泛的使用。
在1999年初,Jonathan开始负责Microsoft Messenger,而这个汇编和反汇编工具交给了Larry Sullivan,Larry所领导的开发团队有一个很有意思的名字CROEDT(Comlnon Runtime Odds and Ends Development Team)。在那一年的4月,我加入了这个团队,IdI叮将这个汇编和反汇编工具的任务交给了我。当1999午5月公共语言运行环境的。版本出现在技术预览会(TechnicalPre―view)上的时候,Asm,特别是Dasm引起了人们极大的关注,我被告之要重新处理这个工具,将其发展到产品的水平。在Larry、Vance Morrison和Jim Miller的帮助下,我完成了这项工作。
因为这些工具当时还只是内部组件,所以我们(Larry、Vance、Jim和我)从根本上对这个语言进行了重新设计――并不是只将其作为工具实现。
主要的突破发生在1999年的后半年,当时ILAsm输入和ILDASM输出已经可以实现足够的同步,进而可以获得有限的双向解析(round-tripping)。双向解析意味着用户可以编译特定语言,获得托管的(IL)可执行程序,对其进行反汇编、增加或者修改一些ILAsm代码,然后重新将其组装到经过修改的可执行程序中。双向解析技术开创了新纪元,此后不久,它就开始应用于Microsoft及其伙伴的特定产品的开发过程中。
大约与此同时,使用ILAsm作为基本语言的第三方.NET编译器也已经开始出现。人所共知的可能就是Fujitsu的COBOL.NET,它在2000年7月的专业开发者会议(Professional Develop-ers BConference)上大出风头,这次会议向开发者们发布了最初的公共语言运行环境pre-beta版本并附带.NET Framework类库、编译器和工具。
自从2000年底betal版发布以来,ILAsm和ILDASM的功能日渐完善,它们已经可以反映元数据和IL的所有特性,并支持完整的双向解析,而且能够将自身的改变与运行环境的改变保持同步。
谁该阅读本书
本书面向所有.NET的开发人员,因为他们在非常高级的层次上工作,所以可能需要考虑程序的编译结果,或者希望分析所编译程序的最终结果。这些读者可以在本书中找到解释反汇编文本以及元数据结构概要的必要信息,这可以帮助他们开发出更有效率的应用。
因为分析反汇编信息和元数据结构对于评估任何面向.NET的编译器的正确性和效率都十分关键,所以这本书也非常适用于.NET编译器的开发者。还有一些目前数量较少但在逐渐增加的读者,包括直接使用几汇编语言的开发者,例如,将ILAsm作为中间步骤的编译器开发人员、策划多语言项目的开发人员,以及希望提高驾驭公共语言运行环境能力(这种能力无法从高级语言中获得)的开发人员。
最后,本书对于从概念设计到实现和维护的软件开发的所有阶段都很有价值。
本书的组织
系列图书推荐 ¥59.00¥114.00
同类热销商品¥30.00¥21.60
订单处理配送
北京奥维博世图书发行有限公司 china-pub,All Rights Reserved 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
2014事业统计新版软件操作的几个具体问题及处理办法(doc)
下载积分:800
内容提示:2014事业统计新版软件操作的几个具体问题及处理办法(doc),doc,资料,精品,模板,管理,企业,范文,总结,推荐,文档
文档格式:DOC|
浏览次数:0|
上传日期: 09:59:54|
文档星级:
该用户还上传了这些文档
2014事业统计新版软件操作的几个具体问题及处理办法(d
官方公共微信打开浏览器时提示ildsp.dll不是有效的win32_百度知道
打开浏览器时提示ildsp.dll不是有效的win32
是不是和浏览器不适配呢!安装适合自己电脑的浏览器就好了,推荐你使用个QQ浏览器,一只再用挺好的!速度快,占的内存比较小!运行起来比较顺畅,新功能都还挺好的!能一键登录QQ、空间和微博等。特别方便!
其他类似问题
为您推荐:
其他1条回答
这是个程序的扩展,估计不是32位的,而你的电脑是32位的,所以会出现问题,重新下载浏览器安装吧,我用的是QQ浏览器,挺好用的,只有五兆的大小,下载安装很快的,占用电脑的内存很小,运行起来特别流畅,浏览网页看视频什么的一点都不卡,并且还能登陆网页版的微信,挺好用的一个浏览器
win32的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁(22)有以下程序(注:字符a的ASCIl码值为97) (11年秋) #include&stdi_百度知道
(22)有以下程序(注:字符a的ASCIl码值为97) (11年秋) #include&stdi
(22)有以下程序(注:字符a的ASCIl码值为97)
(11年秋)#include&stdio.h&main(){char *s={&abc&};do{printf(&%d&,*s%10);++s;}while(*s);}程序运行后的输出结果是(
D)979899解释
提问者采纳
#include&stdio.h&main(){char *s={&abc&};//定义字符指针*s,并初始化为字符串的首地址do//循环入口{printf(&%d&,*s%10);//计算出指针所指向的内容除以10的余数并输出++s;//指针加1指向下一个地址}while(*s);//判断指针所指内容是否为0,本例中c字符后有结束标志0}程序运行后的输出结果是(
while(*s)中的*s所指内容不为0就继续循环,为0则结束循环。
提问者评价
太给力了,你的回答完美地解决了我的问题,非常感谢!
其他类似问题
为您推荐:
include的相关知识
其他1条回答
Do while循环每次取得字符串s中的一个字符,每取一个将ASCLL码取10的余数按整数输出。a的ASCLL为97,取余数为7,输出一个7,以此类推,输出789
有什么不懂的,请继续向我提问,望采纳
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁 上传我的文档
 下载
 收藏
免责声明:1,本账号发布文档来源于互联网和个人收集,仅用于技术分享交流用,版权为原作者所有。 2,文档内容纯属来自网络意见,与本账号立场无关。涉及政治言论一律相应删除,请大家监督。 3. 本账号发布文档均来源于个人收集和互联网,仅用于分享、学习、交流等使用.如在使用下载、浏览过程中出现问题,请及时站内留言或留下信箱等联系方式. 4. 本人不对文档合法性承担任何法律责任。 5. 如有文档存在侵权行为请告知,经核实将予以删除. 6,如有侵犯原您的版权,请提出指正,我们将立即删除相关资料有其它问题也欢迎与本人联系
 下载此文档
正在努力加载中...
运行经验和统计数据表明。电力系统中各种短路故障发生的
下载积分:1500
内容提示:运行经验和统计数据表明。电力系统中各种短路故障发生的
文档格式:DOC|
浏览次数:81|
上传日期: 13:08:56|
文档星级:
该用户还上传了这些文档
运行经验和统计数据表明。电力系统中各种短路故障发生的
官方公共微信

我要回帖

更多关于 函数不正确是什么意思 的文章

 

随机推荐