CN101101561A - 一种可执行的构件动态连接库的构造和执行方法 - Google Patents

一种可执行的构件动态连接库的构造和执行方法 Download PDF

Info

Publication number
CN101101561A
CN101101561A CNA2006100286818A CN200610028681A CN101101561A CN 101101561 A CN101101561 A CN 101101561A CN A2006100286818 A CNA2006100286818 A CN A2006100286818A CN 200610028681 A CN200610028681 A CN 200610028681A CN 101101561 A CN101101561 A CN 101101561A
Authority
CN
China
Prior art keywords
function
interface
dynamic link
compiler
refers
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2006100286818A
Other languages
English (en)
Other versions
CN100555224C (zh
Inventor
陈榕
苏翼鹏
文立
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Elcoteq Shanghai Huajie Technology Co. Ltd.
Original Assignee
KETAI CENTURY SCIENCE AND TECHNOLOGY Co Ltd SHANGHAI
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KETAI CENTURY SCIENCE AND TECHNOLOGY Co Ltd SHANGHAI filed Critical KETAI CENTURY SCIENCE AND TECHNOLOGY Co Ltd SHANGHAI
Priority to CNB2006100286818A priority Critical patent/CN100555224C/zh
Publication of CN101101561A publication Critical patent/CN101101561A/zh
Application granted granted Critical
Publication of CN100555224C publication Critical patent/CN100555224C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种可执行的构件动态连接库的构造方法,即包含构件编译器的操作系统执行如下步骤:构件编译器在编译构件描述文件时,如发现有特殊关键字,则在生成的源文件框架中添加接口,接口包含函数一和函数二;填写函数一和函数二,用c++编译器,编译源文件框架,产生可执行的动态连接库构件。本发明还提供了一种可执行的构件动态连接库的执行方法,用于上述所得的构件,即操作系统在将构件加载后,获得接口元数据中的接口,首先调用上述函数一,同时可向外以接口形式提供其它的服务,在构件生命周期完成后,调用函数二以允许用户作处理,最后卸载所述构件。

Description

一种可执行的构件动态连接库的构造和执行方法
技术领域
本发明涉及一种计算机软件中的构件技术,尤其涉及一种可执行的构件动态连接库构造和执行的方法。
背景技术
目前传统的构件没有入口的要求,所以也就不可能运行。比如普通的EXE文件有main或者wmain作为整个执行体的入口,因而普通的EXE文件可以被加载器加载,拥有自己的地址空间,并执行main函数或者wmain函数内的代码,但普通的EXE只是通过本地加载器将执行参数传给EXE执行体,不是接口型的函数,故没办法直接从远程执行带参数的启动;再如普通的DLL有DllMain函数作为初试化DLL的入口,但它是没办法独立存在的,必需要被其它进程加载到进程的地址空间才可以,加载完成后,为了初试化DLL,通过DllMain执行一些初试化的代码,在DLL卸载时,处理一些资源回收或者和卸载相关的事情,但同样DllMain是普通的函数,不是接口型的函数,故也不可能直接在远程带参数的初试化;虽然Windows编程有WinMain()作为用户程序的入口,其作用相当于传统exe的main函数,且没有实质上的不同,也不是接口型的函数,故也不可能直接在远程带参数的初试化。因此如何使构件技术既有远程化能力,又有动态加载能力是一个技术问题。
发明内容
本发明要解决的技术问题是提供一种可执行的构件动态连接库的构造方法和其执行方法,使相关构件能在远程根据一定的参数被引导执行,并且同时提供一定的构件服务,在构件自己的生命周期完成后,可被卸载,卸载时允许用户处理相关的资源。
为解决上述技术问题,本发明提供了一种可执行的构件动态连接库的构造方法,即包含构件编译器的操作系统执行如下步骤:构件编译器在编译构件描述文件时,如发现有特殊关键字,则在生成的源文件框架中添加接口,上述接口包含函数一和函数二;填写函数一和函数二,用c++编译器,编译源文件框架,产生可执行的动态连接库构件。
本发明还提供了一种可执行的构件动态连接库的执行方法,用于上述所得的构件,即操作系统在将构件加载后,获得接口元数据中的接口,首先调用上述函数一,同时可向外以接口形式提供其它的服务,在构件生命周期完成后,调用函数二以允许用户作处理,最后卸载所述构件。
本发明由于在构件描述文件中添加特殊关键字,使相关构件能根据一定的参数被引导执行,并且同时提供一定的构件服务。
附图说明
图1是本发明具体实施例中动态连接库的构造方法的流程图;
图2是本发明具体实施例中中动态连接库的执行方法的流程图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细的说明。
首先讲述本发明方法涉及的原理。CAR即Component Assemble atRuntime,为应用于Elastos操作系统上的构件技术。本发明方法即基于CAR。本发明方法中的CAR文件是Elastos操作系统中定义的用来描述构件(component)的接口(interface)特征的描述文件,而main则是上述CAR文件中的一个特殊关键字(keyword)。Elastos操作系统的CAR构件编译器(carc)在编译CAR文件时,如发现有main关键字会在生成的框架文件中隐含添加接口IMainApplet,该接口包含函数AtEntry([in]EzArray<EzStr>argcv)和AtExit(),然后生成相关构件。操作系统在将构件加载之后,从接口元数据得知有接口IMainApplet,便首先调用接口方法AtEntry([in]EzArray<EzStr>argcv),同时可向外以接口形式提供其它的服务,在构件生命周期完成后,调用AtExit()接口方法以允许用户作某些处理,之后卸载构件。
下面结合具体实施例,进一步讲述本发明。
如图1所示,是本发明具体实施例中动态连接库的构造方法的流程图。首先是可执行的构件动态连接库的构造方法中的代码实现:
1)CAR文件写法
module
{
       [main]class CMainHello{}
}
可以通过系统的carc编译上述CAR文件,并产生相应的c++语言代码框架;carc编译器在编译CAR文件时,如果发现有main关键字,会自动产生源文件框架,在文件框架中,会包含有接口IMainApplet,该接口包含有两个函数:一个是AtEntry([in]EzArray<EzStr>argcv),argcv是自描述的字符串型数据,可远程化,用来初试化CAR构件;另一个是AtExit()用来在CAR构件卸载时,回收资源,处理相关事宜。
2)用户填写AtEntry()和AtExit()函数,用c++编译器,编译此框架文件,就可产生可执行的动态连接库CAR构件。
对上述的CAR构件可有两种执行方式,即:
本地执行,在命令行下键入构件dll的名称,会被系统象exe文件一样的加载到本地执行。首先调用AtEntry()内的代码执行,完成后会调用AtExit()后,退出系统。
远程执行,要求远端是Elastos操作系统,或者具运行有elastos的虚拟机,通过指定远端机器url和需要执行的dll,以及执行时携带的参数,系统将dll透明地执行在远端的地址空间,一样的调用AtEntry()内的代码执行,完成后会调用AtExit()后,退出系统。
对使用者而言,同样的服务可以在本地也可以在远程,都透明的执行,而没有什么不同。因而在Elastos操作系统上,dll可直接由操作系统加载,而不需要借助exe,可以有自己独立的地址空间,主线程,执行自己的代码序列。图2是本发明具体实施例中中动态连接库的执行方法的流程图
综上所述,本发明方法基于对普通的构件DLL的改进,使CAR构件的既有远程化能力,又有DLL的动态加载能力,从而使得构件以更为灵活的方式得到应用。

Claims (4)

1、一种可执行的构件动态连接库的构造方法,其特征在于,包含构件编译器的操作系统执行如下步骤:所述构件编译器在编译构件描述文件时,如发现有特殊关键字,则在生成的源文件框架中添加接口,所述接口包含函数一和函数二;填写所述函数一和函数二,用c++编译器,编译所述源文件框架,产生可执行的动态连接库构件。
2、根据权利要求1所述可执行的构件动态连接库的构造方法,其特征在于,所述构件编译器指CAR构件编译器,所述构件描述文件是用来描述构件的接口特征的描述文件,所述特殊关键字指main关键字,所述接口指ImainApplet,所述函数一指函数AtEntry(),所述函数二指函数AtExit(),所述动态连接库构件是一个是CAR构件;其中所述函数AtEntry()指AtEntry([in]EzArray<EzStr>argcv),argcv是可远程化的自描述字符串型数据,用来初试化所述CAR构件,所述函数AtExit()用来在所述CAR构件卸载时回收资源。
3、一种可执行的构件动态连接库的执行方法,用于执行根据权利要求1、2所得的构件,其特征在于,所述操作系统在将所述构件加载后,获得接口元数据中的接口,首先调用所述函数一,同时可向外以接口形式提供其它的服务,在所述构件生命周期完成后,调用所述函数二以允许用户作处理,最后卸载所述构件。
4、根据权利要求3所述可执行的构件动态连接库的执行方法,其特征在于,所述构件加载指本地执行或远程执行,即在命令行下键入所述构件的名称。
CNB2006100286818A 2006-07-06 2006-07-06 一种可执行的动态连接库car构件的构造和执行方法 Expired - Fee Related CN100555224C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006100286818A CN100555224C (zh) 2006-07-06 2006-07-06 一种可执行的动态连接库car构件的构造和执行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006100286818A CN100555224C (zh) 2006-07-06 2006-07-06 一种可执行的动态连接库car构件的构造和执行方法

Publications (2)

Publication Number Publication Date
CN101101561A true CN101101561A (zh) 2008-01-09
CN100555224C CN100555224C (zh) 2009-10-28

Family

ID=39035841

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100286818A Expired - Fee Related CN100555224C (zh) 2006-07-06 2006-07-06 一种可执行的动态连接库car构件的构造和执行方法

Country Status (1)

Country Link
CN (1) CN100555224C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102262587A (zh) * 2011-07-22 2011-11-30 中国科学院声学研究所 一种断点调试方法和调试器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102262587A (zh) * 2011-07-22 2011-11-30 中国科学院声学研究所 一种断点调试方法和调试器

Also Published As

Publication number Publication date
CN100555224C (zh) 2009-10-28

Similar Documents

Publication Publication Date Title
US6272674B1 (en) Method and apparatus for loading a Java application program
CA2579662C (en) Testing systems and methods for a resource constrained device
CN106055368B (zh) 应用更新方法和装置
CN103069385A (zh) 动态加载基于图的计算
CN105378689B (zh) 用于统一可扩展固件接口(uefi)驱动器和协议的方法和装置
JP2006099737A (ja) テスト自動化のスタック階層化
JP2002024032A (ja) 複数言語のコンパイル方法及びシステム
Li et al. Program tailoring: Slicing by sequential criteria
CN102567033B (zh) 基于嵌入式实时Java虚拟机的预先类加载方法及装置
US20110126179A1 (en) Method and System for Dynamic Patching Software Using Source Code
CN110362301B (zh) 一种终端应用行为反射的处理方法
CN108228170B (zh) 一种嵌入式软件构件化定制组装方法
US20180129494A1 (en) Detect application defects by correlating contracts in application dependencies
JP2010250378A (ja) ソフトウェア開発支援装置、システム、ソフトウェア開発支援装置の機能拡張方法、及びプログラム
Dastgeer et al. The PEPPHER composition tool: Performance-aware dynamic composition of applications for GPU-based systems
CN111966357A (zh) 一种操作系统应用编译方法、装置及电子设备
Kolovos et al. The epsilon pattern language
US20030149967A1 (en) Information processing method and system
CN113360156B (zh) 一种ios编译方法及相关设备
Khan et al. A study: selection of model metamodel and SPL tools for the verification of software product lines
CN100555224C (zh) 一种可执行的动态连接库car构件的构造和执行方法
US20040205744A1 (en) Management of co-processor information by integrating non-program information with program information
KR20130020135A (ko) 통합 개발 환경에서의 코드 동시 개발자 리스트 제공 시스템 및 방법
CN113031964B (zh) 一种大数据应用的管理方法、装置、设备及存储介质
CN102508694A (zh) 一种虚拟机文件运行方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1112976

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1112976

Country of ref document: HK

ASS Succession or assignment of patent right

Owner name: SHANGHAI KORTIDE TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: KETAI CENTURY SCIENCE AND TECHNOLOGY CO., LTD., SHANGHAI

Effective date: 20110727

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20110727

Address after: 201203 No. 401, 177 and 501, blue wave road, Zhangjiang hi tech park, Shanghai

Patentee after: Elcoteq Shanghai Huajie Technology Co. Ltd.

Address before: 201203 Shanghai city Pudong New Area Jing Road 498 No. 17 Pudong Software Park Building 2 layer

Patentee before: Ketai Century Science and Technology Co., Ltd., Shanghai

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091028

Termination date: 20180706

CF01 Termination of patent right due to non-payment of annual fee