的 bort-C#如何实现Delphi的abort功能

问题描述

C#如何实现Delphi的abort功能

如题:C#如何实现Delphi的abort功能,写一个和Delphi功能一样的功能。
Delphi的Abort;实现如下:

 procedure Abort;
  procedure RaiseEAbort(ReturnAddr: Pointer);
  begin
    raise EAbort.CreateRes(@SOperationAborted) at ReturnAddr;
  end;
asm
      POP    EAX
      JMP    RaiseEAbort
end;

解决方案

没办法再语法层面模拟,但是根据你的这个函数的用途,可以用goto语句跳转到你需要的地方,或者通过bool变量和递归返回多层调用,或者通过SEH返回。

时间: 2024-12-02 09:12:49

的 bort-C#如何实现Delphi的abort功能的相关文章

第二十章-开发Delphi对象式数据管理功能(一)-(2)

20.1.1.2 TStream的实现原理 TStream对象是Stream对象的基础类,这是Stream对象的基础.为了能在不同媒介上的存储数据对象,后继的Stream对象主要是在Read和Write方法上做了改进,.因此,了解TStream是掌握Stream对象管理的核心.Borland公司虽然提供了Stream对象的接口说明文档,但对于其实现和应用方法却没有提及,笔者是从Borland Delphi 2.0 Client/Server Suite 提供的源代码和部分例子程序中掌握了流式对象

登录界面-delphi 实现验证码功能

问题描述 delphi 实现验证码功能 本人在用delphi做一个登录界面,想实现验证码的功能.但在百度上没找到源码.求源码连接地址或源码,谢谢. 解决方案 很久之前做过一个,源码找不到了,可以提供一个思路: 1.将待生成验证码的字符分解,对每一个字符进行以下处理: 2.将当前字符使用随机颜色(白色除外)输出到一个大小固定的矩形图像中(使用textout函数) 3.将此图像进行随机角度(可以在一定范围内)旋转(可能会用到图像处理中的rotate函数) 4.将此图像复制且追加到目标图像中的尾部(可

第二十章-开发Delphi对象式数据管理功能(一)-(1)

面向对象技术是九十年代的主流技术,各类应用软件如果以面向对象的方法构造并且渗透面向对象的风格将使软件具有更高的品质.在面向对象程序设计中,对象式数据管理占有很重要的地位.在Delphi中,对对象式数据管理的支持方式是其一大特色. Delphi是一个面向对象的可视化设计与面向对象的语言相结合的集成开发环境.Delphi的核心是部件.部件是对象的一种.Delphi应用程序完全是由部件来构造的,因此开发高性能的Delphi应用程序必然会涉及对象式数据管理技术. 对象式数据管理包括两方面的内容: ● 用

第二十章-开发Delphi对象式数据管理功能(四)(6)

7. SetName方法和OnSetName事件 因为在OnSetName事件中,Name参数是var型的,所以可以用OnSetName事件处理过程修改所读部件的名字.而OnSetName事件处理过程是在SetName方法中实现的. procedure TReader.SetName(Component: TComponent; var Name: string); begin if Assigned(FOnSetName) then FOnSetName(Self, Component, Na

第二十章-开发Delphi对象式数据管理功能(四)(5)

6. 读取部件的方法的实现 Reader对象中用于读取部件的方法有ReadSignature.ReadPrefix.ReadComponent.ReadRootComponent和ReadComponents. ReadSignature方法主要用于读取Delphi Filer对象标签一般在读取部件前,都要用调用ReadSignature方法以指导部件读写过程. procedure TReader.ReadSignature; var Signature: Longint; begin Read

第二十章-开发Delphi对象式数据管理功能(四)(4)

5. 简单数据类型读方法的实现 简单数据类型指的是布尔型.字符型.整型.字符串型.浮点型.集合类型和标识符.将它们放在一起介绍是因为它们的实现方法类似. 因为它们的实现都用到了ReadValue方法,因此先来介绍ReadValue方法的实现: function TReader.ReadValue: TValueType; begin Read(Result, SizeOf(Result)); end; 该方法调用私有方法Read,从Reader对象流中读一个字节,并移动位置指针. ReadVal

第二十章-开发Delphi对象式数据管理功能(四)(2)

14. OnError事件 声明:property OnError: TReaderError; 当Reader对象读取数据出错时将引发OnError事件.通过处理OnError事件,可以有选择地处理或忽略错误. 传给OnError事件处理过程的最后一个参数是名为Handled的var参数.在缺省情况下,Error方法将Handled置为True.这将阻止错误更进一步处理.如果事件处理过程仍旧将Handled置为False,Reader对象将引发一个EReadError异常事件. 15. Set

第二十章-开发Delphi对象式数据管理功能(四)(1)

20.2.3 TReader对象 TReader对象是可实例化的用于从相联系的流中读取数据的Filer对象.TReader对象从TFiler继承下来,除了从TFiler继承的属性和方法外,TReader声明了不少属性.方法和事件. Owner和Parent属性用于表示从Reader对象的流中读取的部件的拥有者和双亲结点.OnError,OnFindMethod和OnSetName事件使应用程序在运行中读数据时能定制响应方式.除了覆盖了一些从TFiler对象中继承的方法外,TReader对象还定义

第二十章-开发Delphi对象式数据管理功能(三)(5)

2. TWriter方法的实现 ⑴ WriteListBegin和WriteListEnd的实现 这两个方法都是用于写连续若干个相同类型的值.WriteListBegin写入VaList标志,WriteListEnd写入VaNull标志. procedure TWriter.WriteListBegin; begin WriteValue(vaList); end; procedure TWriter.WriteListEnd; begin WriteValue(vaNull); end; 这两