首页 相关文章 delphi的调用约定

delphi的调用约定

  Calling conventions(调用约定)
  
  
   在声明过程或函数时,你可以使用下面的指示字之一来指明调用约定:register、pascal、cdecl、stdcall以及safecall。比如,
  
  function MyFunction(X, Y: Real): Real; cdecl;
  ...
   调用约定决定了参数被传递给例程的顺序,它们也影响从堆栈中删除参数、传递参数时寄存器的使用,以及错误和异常处理。默认的调用约定是register。
  
  • register 和pascal 调用从左到右传递参数,也就是说,最左边的参数最早被计算并传递,最右边的参数最后被计算和传递;cdecl、stdcall 和safecall 调用从右到左传递参数;
  • 除了cdecl 调用,过程和函数在返回之前从堆栈中移除参数,而使用cdecl,当调用返回时,调用者从堆栈中移除参数;
  • register 调用能使用多达3 个CP...[ 查看全文 ]

2016-02-19 标签:

delphi的调用约定的相关文章

  •   显式例子:  ?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> unit Main;   interface   uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,   Dialogs, StdCtrls, ExtCtrls, Grids, DBGrids, DB, DBTables, DBCtrls;   type   TForm1 = class(TForm) ...[ 查看全文 ]
  • 标签:Delphi
      在用Delphi 3.0开发软件时,出现了硬件驱动程序(DLL)中的函数和过程不能正常调用的问题,该硬件由英国Schlumberger公司生产,驱动程序用汇编语言编写的。其《编程指南》给出的Microsoft C的示范程序均能正常运行。但运行此软件时现出的错误提示为: Access violation at address ×××××××× in module…… 经仔细分析,才发现问题出现在函数调用模式上。 Delphi 3.0支持五种调用...[ 查看全文 ]
  • 标签:Delphi
      Delphi作为一种面向对象的可视化开发工具,以其开发程序的高速度和编译代码的高效率越来越受到广大编程人员的喜爱。尽管Delphi已经提供了非常强大的开发组件(VCL),但灵活使用API函数一定可以使你的程序增色不少。 状态键的检查 当今不少流行软件的编辑窗口(包括Delphi的代码编辑窗口)的底部都有一个状态条用来显示一些状态信息,比如当前光标的位置等。通常键盘的状态键...[ 查看全文 ]
  • 标签:Delphi
      在用Delphi30开发软件时,出现了硬件驱动程序 (DLL)中的函数和过程不能正常调用的问题,该硬件由英国Schlumberger公司生产,驱动程序用汇编语言编写的。其《编程指南》给出的 Microsoft C的示范程序均能正常运行。但运行此软件时现出的错误提示为: Access violation at address ×××××××× in module…… 经仔细分析,才发现问题出现在函数调用模式上。 Delphi30支持五种调...[ 查看全文 ]
  • 在Delphi中,要调用Chm文件可以通过引用HHctrl.ocx文件的函数HtmlHelpA实现。 不过在这里,我们也可以使用API函数ShellExecute来打开Chm帮助文件。 在网上找到的资料,通常以 ShellExecute(self.Handle,'open','help.chm','', '',SW_SHOW);? 的方式来实现。 但有个不足,就是不能打开指定的帮助页面,所显示的是帮助文档的起始页面。 想到Chm文件被关联到hh.exe程序,...[ 查看全文 ]
  • 在以前用 Delphi 开发的项目中,会经常用到TChart这个画图控件,它本身很强大,支持各类图,如点线图,柏拉图,柱状图等等,加上可以输出成BMP,JPEG,JPG,SVG,GIF等各种格式图片,很好用,当时也封装成比较独立的 DLL文件 。这次开发.NET程序正好派上用场。 几个关键技术点: 1 C#要以非托管方式调用DLL 2 C#把整理好的画图数据生成事先定义好格式的XML文件,传给DLL 3 DLL解析...[ 查看全文 ]
  • 标签:Delphi
      根据Delphi提供的有关 DLL编写和调用的帮助信息,你可以很快完成一般的 DLL编写和调用的 应用程序。本文介绍的主题是如何编写和调用能够传递各种参数(包括对象实例)的 DLL。例如, 主叫程序传递给 DLL一个ADOConnection 对象示例作为参数, DLL中的函数和过程调用通过该对象 实例访问数据库。 需要明确一些基本概念。对于 DLL,需要在主程序中包含 exports子句,用于向外界提供...[ 查看全文 ]
  • 标签:Delphi
      在写程序的时候,有时我们为了省力,或者为了别的目的,我们常常想借用系统的对话框,那么,如何才能调用系统对话框呢?一位朋友是VB中是这样调用“打开方式”对话框的:   winexec(PChar('rundll32 shell32,OpenAs_RunDLL '+FilePath),SW_SHOWDEFAULT);   这句代码是运行rundll32.exe,让它调用shell32.dll中的资源来实现的。方法可行,但是有许多像我一样的菜鸟并不明白如何调用shel...[ 查看全文 ]
  •   需求 :由于最近接到这样的项目,甲方他们要求我们开发的功能加入他们原先已经存在的一个PB开发的应用程序中。唯一的目的是不想有两个exe应用程序。 方案 :把Delphi的应用程序用dll的形式打包,然后在PB里调用。 设计 :         一、 PB部分                ...[ 查看全文 ]
  • 具体的DLL封装对象请看刘艺的《Delphi中的DLL封装和调用对象技术》及配书源码。 本人在使用DELPHI编制DLL过程中碰到了些奇怪的问题,现在将其列出来,仅供参考: 1、DELPHI生成的DLL工程中写到:ShareMem must be the first unit in your library's USES clause AND your project's。这里提到的是DLL工程和使用该DLL的工程都需要引用ShareMem单元。     ShareMem单元...[ 查看全文 ]
  • 我在编写一个系统时遇到了一个问题,无法在C#中调用Delphi6写的DLL,只因为DLL的参数是string类型的。然后在网上找相关的资料,还是没有结果。经过我的再三琢磨,现在已经解决,特写此文章与大家分享我的喜愉! Dellphi DLL文件: /////////////////////////////////////////////////////////////////// library mydll; uses SysUtils, Classes; {$R *.res} function Out_Char(str1:PChar;str2:PChar):Pch...[ 查看全文 ]
  • PSP《凉宫春日的约定》邪恶必插路线攻略 必备知识: 攻略之前,转一段对话结果的研究,对话成败乃此游戏之根本,每一个玩此游戏的玩家必须了解此点,感谢前人栽树。 对话成败结果 ·会话成功结束 会话后SOS团的标志出现 ·通常结束 黑色的背景浮现字母“H” ·心跳结束 红色的背景浮现字母“H” ·心碎结束 青色的背...[ 查看全文 ]
  • 《约定的四日》大河的问题全答案(中文版) 大河的问题答案 : 不同选项;隔开,正确答案为[ ]里的选项。 1、初级 一次圣杯战争中被召唤的Servant数目是? [七人。] ;八人 ;只要有令咒就无限制。 ABER的宝具个数是? 一个 ;[三个] ;五个。 作为本游戏的舞台的城镇的名字是? 春阳市 ;夏海市 ;[冬木市] Lancer大哥是哪里的英雄? 英格兰 ;[爱尔兰] ;冰岛。 ...[ 查看全文 ]
  •        首先我觉得有必要把.net平台下开发webservice进行一个比较全面的阐述,web service的最初产生是在电子商务的环境下出现的,有些问题通过传统的手段已经不容易解决,比如在应用程序之间进行商务通信、数据交换,使用DCom、CORBA等二进制机制的东西已经行不通了,姑且不说他们受各自平台的限制,比如DCom(Distribute Common Objects Model)只能在Windows平台下进行,而CO...[ 查看全文 ]
  • 标签:Java JAVA基础
    要调用 Servlet 或 Web 应用程序,请使用下列任一种方法:由 URL 调用、在 <FORM 标记中调用、在 <SERVLET标记中调用、在 JSP 文件中调用、在 ASP 文件中调用。 1. 由 URL 调用 Servlet 这里有两种用 Servlet 的 URL 从浏览器中调用该 Servlet 的方法: (1) 指定 Servlet 名称:当用 WebSphere应用服务器 管理器来将一个 Servlet 实例添加(注册)到服务器配置中时,必须指定"Servlet 名称"参数的...[ 查看全文 ]
  • 《兰岛物语之少女的约定》攻略心得 1主线剧情 1.街道,遇到黑暗巫師(條件應該是第一年冬天的那個事件解決後)(885年 01/16~02/16) 2.教會,遇到菲,她會告訴希洛一些事件1中提及的物品的情報(885年 08/01) 3.街道,遇到黑暗巫師(有選項,應該不難選,記得付3000元)(885年 03/01~09/01) 4.發生事件3後,冬季以外都會在當晚自動發生,地點是城牆(CG*2) 5.廣場遇到事件(乍看之下不一定會聯想到主...[ 查看全文 ]
  • 在Delphi中实现将Font.Style写入INI文件 前不久我编写一个小程序在INI文件中记录字体的属性(颜色值/color,大小/size,字体名/name,样式/style),其中color值和size值可以用数值方式写入INI文件,name是用字符方式写入,但Font.style不是数值型、字符型,也不是布尔型,而是TfontStyles类,无法直接写入INI文件中去,我找了好多相关书籍也没找到方法,也到网络上的Delphi站点去问,也没得到满意的答...[ 查看全文 ]
  • 左通过栈传递,被调用的函数在返回前清理传送参数的内存栈,但不同的是函数名的修饰部分(关于函数名的修饰部分在后面将详细说明)。 _stdcall是Pascal程序的缺省调用方式,通常用于Win32 Api中,函数采用从右到左的压栈方式,自己在退出时清空堆栈。VC将函数编译后会在函数名前面加上下划线前缀,在函数名后加上"@"和参数的字节数。 2、C调用约定(即用__cdecl关键字说明)按从右至...[ 查看全文 ]
  • 1.规范简介?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 本规范主要规定Delphi源程序在书写过程中所应遵循的规则及注意事项。编写该规范的目的是使公司软件开发人员的源代码书写习惯保持一致。这样做可以使每一个组员都可以理解其它组员的代码,以便于源代码的二次开发记忆系统的维护。   2.单元的格式 2.1 基本要求 2.1.1 缩进   &n...[ 查看全文 ]
  • 在使用DELPHI开发软件的过程中,我们就像草原上一群快乐牛羊,无忧无虑地享受着Object Pascal语言为我们带来的阳光和各种VCL控件提供的丰富的水草。抬头望望无边无际蔚蓝的天空,低头品尝大地上茂密的青草,谁会去想宇宙有多大,比分子和原子更小的东西是什么?那是哲学家的事。而哲学家此时正坐在高高的山顶上,仰望宇宙星云变换,凝视地上小虫的爬行,蓦然回头,对我们这群吃草的牛羊点头微笑。随手扯...[ 查看全文 ]
手机页面 收藏网站 回到头部