这是一个合理的“应用入口点”吗?

时间:2008-09-30 11:01:23

标签: definition

我最近遇到过一种情况,即代码动态加载某些库,连接它们,然后调用所谓的“应用程序入口点”(其中一个库必须实现IApplication.Run())。

这是一个有效的“Appliation入口点”吗?

我一直认为应用程序入口点在加载库之前,发现IApplication.Run()在大量工作之后被调用有点误导。

5 个答案:

答案 0 :(得分:1)

术语应用程序和系统是广泛和多样化使用的术语,您需要与对话伙伴达成一致意见。例如。有时,应用程序是具有UI的东西,而系统是“无UI”的。一般来说,这只是你说马铃薯的情况,我说马铃薯。

至于你使用的例子:这就是运行时(例如.NET或java)的作用:加载一组库并调用应用程序入口点,即“主”方法。

因此,在您的情况下,加载库的代码执行相同,并且可能在接口上调用方法,然后您可以将加载代码视为该应用程序的运行时。这只是一个观点问题。

答案 1 :(得分:0)

术语“应用程序”可以表示您想要的任何含义。 “应用程序”仅仅意味着一组资源(库,代码,图像等),它们协同工作以帮助您解决问题。

所以回答你的问题,是的,这是“应用程序”一词的有效用法。

答案 2 :(得分:0)

应用程序本身意味着什么都没有。人们经常使用它来讨论为用户提供一些的计算机程序。更正确的术语是应用程序软件,其定义如下:

  

应用软件是其子类   使用该软件的计算机软件   直接计算机的功能   并彻底地完成了用户的任务   希望表演。这应该是   与系统软件形成对比   参与整合   计算机的各种功能,但是   通常不会直接应用它们   在任务表现中   使用户受益。在这种背景下   期限申请是指两者兼而有之   应用软件及其应用   实施

由于应用程序确实意味着应用程序软件,而软件是在计算机上执行任何类型任务的任何代码,我还要说库也可以是应用程序。

无论如何,大多数术语都是人为的。插件没有应用程序吗?您的浏览器的Flash插件是否没有应用程序?人们说不,这只是一个插件。为什么?因为它不能独立运行,所以需要将其加载到实际进程中。但没有定义说只有“可以自行运行”的东西才是应用程序。同样适用于图书馆。核心应用程序可能只是一个空容器,所有逻辑和功能,甚至是与用户的交互,都可以通过插件或库来执行,在这种情况下,这将是一个应用程序,而不是仅为空容器提供一些上下文的应用程序。应用程序运行。将其与Java进行比较。 Java 应用程序不能独立运行,它必须在Java虚拟机(JVM)中运行,这是否意味着JVM是应用程序而Java代码只是......那么什么? Java代码不是真正的应用程序,而JVM只是一个空的运行时环境,在没有加载Java代码的情况下不向最终用户提供任何内容吗?

答案 3 :(得分:0)

我认为你所指的可能是C / C ++代码中的main()函数或Windows应用程序中的WinMain。也就是说,通常在应用程序中启动执行。你的问题非常宽泛和模糊 - 例如,你正在运行哪个操作系统 - 但this可能正是你正在寻找的。 This也可能会解决这个问题。

当你提问时要记住,细节是你的朋友。当您向他们提供详细信息时,人们可以为您提供更好,更明智的答案。

编辑: 在更广泛的背景下,考虑从操作系统的角度来看会发生什么。当用户指定他们想要运行应用程序时,操作系统必须从硬盘驱动器加载应用程序,然后当应用程序加载到内存中时,它必须将控制权传递到被新加载占用的内存中的某个点应用程序继续执行。这将是“应用程序入口点”。当使用动态链接代码构建应用程序时,操作系统必须加载所有动态链接代码,以便将正确的应用程序映像存入内存。加载这些共享的代码位并不会改变操作系统必须具有在将应用程序加载到内存时传递控制权的点这一事实。

答案 4 :(得分:0)

我认为在这种情况下,“应用程序入口点”意味着“应用程序(您的代码)进入库的位置”。