• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Delphi程序返回值

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

有位网友提出这样的问题:怎么给Delphi应用程序一个返回码,类似C的exit(-1)
经过尝试,得到结果:
Delphi的处理方式与C/C++有些不同,Delphi中对针对main或是WinMain函数的参数以及返回值的处理是通过system.pas中一些相应的变量及函数实现的。
其中程序的返回值定义在System.pas中的ExitCode.
所以,要想让程序返回值为1,则只需在程序中设置ExitCode := 1;即可。

如下测试代码:

program Project2;
{$APPTYPE CONSOLE}
uses
  SysUtils;
begin
  ExitCode :=10 ;
end.

对返回值的测试:test.bat

@echo off
rem test1.exe 为使用c++写的程序,返回值为33
test1.exe
echo test1.exe return %errorlevel%

rem project2.exe为上边的代码实现的结果
project2.exe
echo project2.exe return %errorlevel%

执行结果:

test1.exe return 33
project2.exe return 10

说明:
本人以前也没有研究这个,但是在看到问题后感觉Delphi应该是可以解决的。于是通过使用debug工具跟踪,如下:

00403595   |.  FF15 24904000   |call dword ptr ds:[409024]
0040359B   |>  8B06            |mov eax,dword ptr ds:[esi]
0040359D   |.  50              |push eax                                 ; /ExitCode
0040359E   |.  E8 EDDAFFFF     |call <jmp.&kernel32.ExitProcess>        ; \ExitProcess
所以Delphi的程序是有一个全局变量的:ds[esi]
其实这个变量就是ExitCode.


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
matlab文件操作发布时间:2022-07-18
下一篇:
54--MATLAB FIR 滤波器设计发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap