(翻译) 《C# to IL》第一章 IL入门
2009-05-29 08:31:17 来源:WEB开发网“函数结束”指令被称为ret。前面所有的函数都必须以这个指令作为结束。
Output
Exception occurred: System.BadImageFormatException: Exception from HRESULT: 0x8007000B. Failed to load C:ILA.EXE.
在执行这个程序时,我们再次得到了相同的错误。这次我们的问题又在哪里呢?
a.il
.assembly mukhi {}
.method void vijay()
{
.entrypoint
ret
}
错误在于我们忘记在名称后面使用必不可少的伪指令assembly。我们将其合成在上面的代码中,并在一对空的花括号之后使用了名称mukhi。这个程序集伪指令用于给出程序的名称。它又被称为一个部署单元。
上面的代码是可以汇编而没有任何错误的最小的程序,虽然它在执行时并没有做什么有用的事情。它没有任何名为Main的函数。它只有一个带有entrypoint伪指令的函数vijay。现在汇编这个程序并运行而根本不会有任何错误。
在.NET中,程序集的概念是极其重要的,应该对其有彻底的认识。我们将在本章后半部分使用这个伪指令。
a.il
.assembly mukhi {}
.method void vijay()
{
.entrypoint
ret
}
.method void vijay1()
{
.entrypoint
ret
}
Error
***** FAILURE *****
上面错误信息的原因是,上面的程序有2个函数,vijay和vijay1,每个函数都包括了.entrypoint伪指令。正如前面提到的那样,这个指令指定了关于那个函数会被首先执行。
- ››Illustrator CS6 打造孔雀花纹的字体
- ››TOscilloscope 仿Windows任务管理器CPU使用记录组...
- ››Illustrator教程:设计制作几何花瓣LOGO
- ››Illustrator实例教程:漂亮证卡变幻线的制作
- ››Illustrator文字教程:制作漂亮质感描边字
- ››Illustrator鼠绘:渐变工具运用绘制金属闹钟
- ››Illustrator鼠绘:教你画一个可爱卡通宝宝教程
- ››Illustrator简单四步做透明气泡教程
- ››Illustrator教程:制作漂亮的新货吊牌
- ››Illustrator教程:改变圆角矩形中一个圆角半径
- ››Illustrator教程:如何用网格工具绘制花瓣
- ››Illustrator涂抹命令打造文字草图特效
更多精彩
赞助商链接