CN101131635A - 动态链接函数库与主应用程序共享静态链接函数库的方法 - Google Patents

动态链接函数库与主应用程序共享静态链接函数库的方法 Download PDF

Info

Publication number
CN101131635A
CN101131635A CNA2006101119121A CN200610111912A CN101131635A CN 101131635 A CN101131635 A CN 101131635A CN A2006101119121 A CNA2006101119121 A CN A2006101119121A CN 200610111912 A CN200610111912 A CN 200610111912A CN 101131635 A CN101131635 A CN 101131635A
Authority
CN
China
Prior art keywords
variable
function library
function
application program
static linkage
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
CNA2006101119121A
Other languages
English (en)
Other versions
CN101131635B (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.)
Sunplus Technology Co Ltd
Original Assignee
Sunplus Technology Co Ltd
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 Sunplus Technology Co Ltd filed Critical Sunplus Technology Co Ltd
Priority to CN2006101119121A priority Critical patent/CN101131635B/zh
Publication of CN101131635A publication Critical patent/CN101131635A/zh
Application granted granted Critical
Publication of CN101131635B publication Critical patent/CN101131635B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

一种动态链接函数库与主应用程序共享静态链接函数库的方法,主应用程序链接一静态链接函数库,由动态链接函数库建立静态链接函数库的函数指针变量与变量指针变量;接着,将动态链接函数库程序代码中有关调用静态链接函数库的函数部分转换为函数指针变量;再将动态链接函数库程序代码中调用静态链接函数库的变量部分转换为变量指针变量;最后,分别编译主应用程序与动态链接程序码为函数库,其中动态链接函数库相关函数与变量已经通过指针方式取代,于主应用程序中加载动态链接函数库同时会将函数及变量的存储位置传给动态链接函数库,使得动态链接函数库中所调用到静态链接函数库的函数与变量的部分都可以共享主应用程序所链接的静态链接函数库。

Description

动态链接函数库与主应用程序共享静态链接函数库的方法
技术领域
本发明涉及一种软件组件的链接技术,特别涉及一种动态链接函数库与主应用程序共享一静态链接库的方法。
背景技术
在设计手机开发工具时,为了要实现所见即所得的效果,通常软件工具设计者会针对开发工具环境额外设计支持的动态组件。然而如何让应用软件设计者能在设计阶段与执行阶段共享一样的程序代码,将动态组件通过标准化接口整合到开发环境中,将会是支持动态软件组件设计者重要的议题。
已知的动态软件组件技术中,主要以微软公司的OLE/COM的设计最为普遍。OLE/COM技术是通过PE32的档格式,来部署每一个OLE/COM组件。由于OLE/COM组件的角色如同动态链接函数库的运作机制,也因此在内存的对应中,所有的组件在彼此互相参考与函数调用时,都可以通过动态的COM接口(COM Interface),链接到目前调用的该OLE/COM组件所存在的内存中。也因此,对这样的软件组件设计时,内存对应的问题可以完全由操作系统内部的内存机制来处理。图1为已知一个应用程序MainApp.exe同时加载多个COM组件时的内存分布示意图。如图1所示,应用程序MainApp.exe同时参考多个COM组件(COM.DLL#1~COM.DLL#4、COM.OCX#5)。该多个COM组件在内存时也可以彼此互相参考对方。
而Borland公司也利用BPL(Borland Package Library)的动态加载套装(Package)格式,而达到动态加载的功能。对于用Delphi或是C++Builder发展工具(development tools)所开发的软件而言,若是希望经由执行对象(runtime object)而节省内存,则可通过BPL达成类似于DLL/COM的目的。其类似动态链接函数库(dynamic link library,DLL)技术,是通过内存对应,让周边支持的软件组件可以依据需求动态加载到内存中。
虽然,目前软件组件的领域已经有动态加载组件技术。但对于嵌入式系统(embedded system)而言,这类的动态加载软件组件反而显得过于庞大与复杂。因此在嵌入式系统的领域,通常只有两种选择:
(1)软件组件都通过静态链接设计:此技术除非拥有编译(compiler)技术和切割区块编译,否则无法通过软件组件来实现藉由设计工具得到所见即所得效果。
(2)提供两种版本的可视化软件组件:此技术好处是可将其中一个版本可视化软件组件针对设计工具需求提供接口,以实现所见即所得的设计效果。但坏处则是对于该可视化软件组件设计人员而言依赖性过高。该可视化软件组件设计工程师必须要付出较大心力。同时对于使用该可视化软件组件的客户而言,客户不容易自行设计新的组件加入其软件中。
针对嵌入式系统中动态加载的问题,已知技术是将应用程序编译成为执行文件,而将周边的函数库编译成为动态链接函数库(dynamic link library,DLL)。两者主要都跟核心函数库(core.lib)做链接。如此虽然可以满足动态实时加载的需求,同时又可以避免必须要特定编译器技术的限制。然而这种技术会形成内存空间的浪费。图2为已知一个应用程序Design_Form.exe同时加载两个动态链接函数库(DLL)时的内存分布示意图。如图2所示,因为该执行档(Design_Form.exe)与所有的动态链接函数库(DLL)都会跟核心函数库(core.lib)进行静态链接。因此如果有两个动态链接函数库(Widget.DLL#1、Widget.DLL#2)与一个执行档(Design_Form.exe),就会有三个核心函数库(core.lib)重复的程序代码在内存中出现,而形成内存空间的浪费。由于有的动态链接函数库(DLL)都会有一个静态链接的核心函数库(core.lib)程序代码。当有的动态链接函数库(DLL)被加载到内存后,反而会形成内存空间的浪费。
针对内存空间的浪费的问题,另一种解决方法是把所有的函数库都通过静态函数库链接。如图3所示,由于所有静态链接的核心函数库(core.lib)本体都只有一份,这种方式可节省内存的使用,然而这种技术却缺乏动态加载的好处,同时减少使用者对于系统设计上的弹性需求。因此,已知的文件系统仍存有诸多的缺失而有予以改进的必要。
发明内容
本发明的主要目的是提供一种动态链接函数库与主应用程序共享静态链接函数库的方法,能让同样的软件组件程序代码通过编译为动态链接函数库与静态函数库的方式分别在执行阶段与设计阶段达到一样的呈现效果。
本发明的另一目的是提供一种动态链接函数库与主应用程序共享静态链接函数库的方法,能针对嵌入式系统的需求将同样的程序代码同时适应于动态加载机制与静态链接的机制,以便于让组件的设计者与使用组件的应用程序设计者都可以享受到跨平台工具的设计好处。
本发明的再一目的是提供一种动态链接函数库与主应用程序共享静态链接函数库的方法,能减轻内存需求,并减少开发组件设计的复杂度。
为达成上述的目的,本发明提出一种动态链接函数库与主应用程序共享静态链接函数库的方法,该主应用程序链接至少一静态链接函数库及一程序代码,该方法包含下列步骤:(A)于主应用程序中,建立该至少一静态链接函数库的一函数指针变量结构,并建立该函数指针变量结构与该至少一静态链接函数库的函数之间的链接;(B)于主应用程序中,建立该至少一静态链接函数库的一变量指针变量,并建立该变量指针变量与该至少一静态链接函数库的变量之间的链接;(C)将该程序代码中调用到的该至少一静态链接函数库所属的函数转换为对应的函数指针变量;(D)将该程序代码中调用到的该至少一静态链接函数库所属的变量转换为对应的变量指针变量;以及(E)编译该程序代码为动态链接函数库,于主应用程序中加载该动态链接函数库,并将函数及变量的存储位置由主应用程序传给该动态链接函数库。
为达成上述的目的,本发明又提出了一种动态链接函数库与主应用程序共享静态链接函数库的方法,该动态链接函数库链接至少一静态链接函数库,该方法包含下列步骤:(a)于该动态链接函数库中,建立该至少一静态链接函数库的一函数指针变量结构,并建立该函数指针变量结构与该至少一静态链接函数库的函数之间的链接;(b)于该动态链接函数库中,建立该至少一静态链接函数库的一变量指针变量,并建立该变量指针变量与该至少一静态链接函数库的变量之间的链接;(c)将主应用程序中调用到的该至少一静态链接函数库所属的函数转换为对应的函数指针变量;(d)将主应用程序中调用到的该至少一静态链接函数库所属的变量转换为对应的变量指针变量;以及(e)编译该动态链接函数库程序代码为动态链接函数库,于主应用程序中加载该动态链接函数库,并将函数及变量的存储位置由动态链接函数库传给该主应用程序。
通过本发明技术,同样的软件组件程序代码可以通过编译为动态链接函数库与静态函数库的方式分别在执行阶段与设计阶段达到一样的呈现效果。也就是说,本发明技术针对嵌入式系统的需求将同样的程序代码同时适应于动态加载机制与静态链接的机制,以便于让组件的设计者与使用组件的应用程序设计者都可以享受到跨平台工具的设计好处。同时,在开发使用者工具时,本发明技术可以减轻内存需求,并减少开发组件设计者的复杂度。
附图说明
图1为已知一个应用程序同时加载多个COM组件时的内存分布示意图;
图2为已知一个应用程序同时加载两个动态链接函数库(DLL)时的内存分布示意图;
图3为已知一个应用程序同时加载两个动态链接函数库时的内存分布示意图;
图4是本发明一种动态链接函数库软件组件与主应用程序共享静态链接函数程序代码的方法的流程图;
图5是本发明一个主应用程序同时加载多个动态链接函数库时的内存分布示意图。
具体实施方式
在本发明的动态链接函数库与主应用程序共享静态链接函数库的方法中,如以需求一个应用程序Design_Form.exe及两个动态链接函数库(Widget.DLL#1、Widget.DLL#2)而言,本发明的技术是通过Design_Form.exe加载一个核心函数库Core.lib,而其它的Widget.dll都会通过函数指针变量与全局变量指针变量的方式共享同一个Core.lib,而减少内存的使用量,并达到动态链接的目的。
在本发明的动态链接函数库与主应用程序共享静态链接函数库的方法中,主要是针对核心软件函数库为静态链接的环境所提出的解决方案。也就是动态组件与引用动态组件的主程序底层都是通过静态链接函数库提供基础调用。经由本发明的技术,同样的软件组件程序代码可以分别编译为动态链接函数库与静态函数库的方式,而分别在执行阶段与设计阶段达到一样的呈现效果。
图4是本发明的动态链接函数库与主应用程序共享静态链接函数库的方法的流程图。该主应用程序Design_Form.exe链接一静态链接函数库Core.lib及一程序代码。首先于步骤S410中,于主应用程序Design_Form.exe中,建立该静态链接函数库Core.lib的一函数指针变量结构,并建立该函数指针变量结构与该静态链接函数库Core.lib的函数之间的链接。
若该静态链接函数库Core.lib中提供如表1函数与全局变量。
  void Func_A(int X1);int Func_B();char Func_C(char*X2);unsigned long v_A;int v_B;unsigned char v_C;unsigned char*v_D;
表1
则于步骤S410中,建立如表2名称为func_p的函数指针变量结构(struct)。并在主应用程序Design_Form.exe中,建立如表3所示的该函数指针变量结构func_p与该静态链接函数库Core.lib的函数之间的链接。
  struct func_p{void(*Func_A)(int X1);int(*Func_B)();char(*Func_C)(char*X2);}funcs;
表2
  funcs.Func_A=Func_A;funcs.Func_B=Func_B;funcs.Func_C=Func_C;
表3
于步骤S420中,于主应用程序Design_Form.exe中,建立该静态链接函数库Core.lib的一变量指针变量,并建立该变量指针变量与该至少一静态链接函数库的变量之间的链接。例如,建立如表4名称为variable_p的变量指针变量。并在主应用程序Design_Form.exe中,建立如表5所示的该变量指针变量variable_p与该静态链接函数库Core.lib的变量之间的链接。
  struct variable_p{unsigned long*v_A;int*v_B;unsigned char*v_C;unsigned char**v_D;}variables;
表4
  variables.v_A=&v_A;variables.v_B=&v_B;variables.v_C=&v_C;variables.v_D=&v_D;
表5
于步骤S430中,将该程序代码中调用到的该静态链接函数库Core.lib的函数转换为函数指针变量。如表6所示,例如该程序代码中调用该静态链接函数库Core.lib的void Func_A(int X1)函数,则更换为调用一函数指针变量void(*Func_A)(int X1)。
  void(*Func_A)(int X1);int(*Func_B)();char(*Func_C)(char*X2);
表6
于步骤S440中,将该程序代码中调用到的该静态链接函数库Core.lib的变量转换为变量指针变量。表7所示,例如该程序代码中调用该静态链接函数库Core.lib的unsigned long v_A变量,则更换为调用一变量指针变量unsigned long*v_A。
  unsigned long*v_A;int*v_B;unsigned char*v_C;unsigned char**v_D;
表7
于步骤S450中,编译该程序代码为动态链接函数库Widget.DLL,于主应用程序Design_Form.exe中加载该程序代码的动态链接函数库Widget.DLL,并将静态链接函数库Core.lib函数及变量的存储位置传给该动态链接函数库Widget.DLL。
于步骤S460中,该程序代码的动态链接函数库Widget.DLL被加载后,依据主应用程序Design_Form.exe所传送的函数及变量的存储位置,更正其调用该静态链接函数库Core.lib的函数及变量。
该程序代码的动态链接函数库Widget.DLL是利用该函数指针变量结构,以更正其调用该静态链接函数库Core.lib的函数。如表8所示,例如该动态链接函数库Widget.DLL中的Func_A函数则更换为函数指针变量funcs->Func_A。
  Func_A=funcs->Func_A;Func_B=funcs->Func_B;Func_C=funcs->Func_C;
表8
该程序代码的动态链接函数库Widget.DLL是利用该变量指针变量,以更正其调用该静态链接函数库Core.lib的变数。如表9所示,例如该动态链接函数库Widget.DLL中的v_A变量则更换为变量指针变量variables->v_A。
  v_A=variables->v_A;v_B=variables->v_B;v_C=variables->v_C;*v_D=variables->v_D;
表9
因此执行完步骤S460后,该动态链接函数库Widget.DLL中所有调用函数与调用全局变量的动作,都如表10所示。
 Func_A(1);*v_D=Func_C(332);*v_B=Func_B();......etc
表10
图5是本发明一个主应用程序Design_Form.exe同时加载多个动态链接函数库时的内存分布示意图。由图5可知,本发明的实施例中,核心函数库(core.lib)的本体都会只有一份,而即可节省内存的使用,同时也可达到动态链接的目的,同时增加使用者对于系统设计上的弹性需求。
于其它实施例中,该程序代码也可编译为静态载入库,其是直接与该至少一静态链接函数库链接。
在另一实施倒中,又提供了一种动态链接函数库与主应用程序共享静态链接函数库的方法,该动态链接函数库链接至少一静态链接函数库,该方法包含下列步骤:
(A)于该动态链接函数库中,建立该至少一静态链接函数库的一函数指针变量结构,并建立该函数指针变量结构与该至少一静态链接函数库的函数之间的链接;
(B)于该动态链接函数库中,建立该至少一静态链接函数库的一变量指针变量,并建立该变量指针变量与该至少一静态链接函数库的变量之间的链接;
(C)将主应用程序中调用到的该至少一静态链接函数库所属的函数转换为对应的函数指针变量;
(D)将主应用程序中调用到的该至少一静态链接函数库所属的变量转换为对应的变量指针变量;以及
(E)编译该动态链接函数库程序代码为动态链接函数库,于主应用程序中加载该动态链接函数库,并将函数及变量的存储位置由动态链接函数库传给该主应用程序。
(F)该主应用程序加载动态链接函数库后,主应用程序取得来自动态链接函数库的函数及变量的存储位置,利用该函数指针变量结构,以动态更正其调用该至少一静态链接函数库的函数,利用该变量指针变量,以动态更正其调用该至少一静态链接函数库的变量。
同样的,所述变量指针变量为全局变量指针变量,所述静态链接函数库为核心函数库。所述方法较佳应用于一嵌入式系统。该实施例与第一实施例的机制是相同的,不再赘述。
通过这样的机制,原本在动态函数库中所调用的变量就可以随着主应用程序或其它相关工作运作需要,而有对应的变量改变。在原本的传统设计中,每个Dll与主应用程序在连结静态函数库时,相关的变量都会被各自包括到每个Dll与应用程序Data Segment中,也因此如果其中的变量有任何的修改,是无法反映到所有的Dll与应用程序中的,透过全局的变量指针变量方式可协助我们达到支持此目的。
本发明技术保留动态加载函数库(Dynamic Loading Library)的便利性,并针对嵌入式系统的限制(Static-Link Library),提供了一套经由函数指针变量与全局变量指针变量在动态链接函数库加载到内存后,动态进行链接的技术。
本发明技术与奎尔(Qualcomm)公司的Brew Resource Editor技术差异点在于:奎尔(Qualcomm)公司的Brew Resource Editor这套工具主要是提供静态且缺乏所见及所得效果的机制,使用者仍需透过编译器编译后,才能看到自己设计出来的效果。
本发明技术与Borland公司的Borland C++Builder/Delphi技术差异点在于:Borland公司的Borland C++Builder/Delphi主要分为执行套件(RuntimePackage)与设计套件(Design Time Package)。执行套件(Runtime Package)就如同一般的动态链接函数库(DLL),设计套件(Design Time Package)就如同是静态链接的对象。但是经过Borland公司预先处理过,与本发明技术差异点在于Borland公司的设计套件(Design Time Package)背后仍是通过Borland公司的动态链接函数库进行链接。而本发明技术是通过主程序链接到主程序的内部静态链接函数库,其设计意义是完全不同。本发明技术是在嵌入式实时操作系统(Embedded RTOS)中,在这类环境并没有支持动态链接函数库加载的动作,因此本发明将可在嵌入式实时操作系统(Embedded RTOS)中提供绝佳的设计效益。
本发明技术与微软公司的OLE/OCX/COM技术差异点在于:微软公司的OLE/OCX/COM主要仍是通过动态加载函数库的内存对应机制来实现对象的共享性,与本发明所提供的通过函数指针变量与全局变量指针变量共享主程序的静态函数库数据是不同的技术。
综上所述,通过本发明技术,同样的软件组件程序代码可以通过编译为动态链接函数库与静态函数库的方式分别在执行阶段与设计阶段达到一样的呈现效果。也就是说,本发明技术针对嵌入式系统的需求将同样的程序代码同时适应于动态加载机制与静态链接的机制,以便于让组件的设计者与使用组件的应用程序设计者都可以享受到跨平台工具的设计好处。同时,在开发使用者工具时,本发明技术可以减轻内存需求,并减少开发组件设计者的复杂度。
上述实施例仅是为了方便说明而举例而已,本发明所主张的权利范围自应以权利要求所述为准,而非仅限于上述实施例。

Claims (15)

1.一种动态链接函数库与主应用程序共享静态链接函数库的方法,该主应用程序链接至少一静态链接函数库及一程序代码,该方法包含下列步骤:
(A)于主应用程序中,建立该至少一静态链接函数库的一函数指针变量结构,并建立该函数指针变量结构与该至少一静态链接函数库的函数之间的链接;
(B)于主应用程序中,建立该至少一静态链接函数库的一变量指针变量,并建立该变量指针变量与该至少一静态链接函数库的变量之间的链接;
(C)将该程序代码中调用到的该至少一静态链接函数库所属的函数转换为对应的函数指针变量;
(D)将该程序代码中调用到的该至少一静态链接函数库所属的变量转换为对应的变量指针变量;以及
(E)编译该程序代码为动态链接函数库,于主应用程序中加载该动态链接函数库,并将函数及变量的存储位置由主应用程序传给该动态链接函数库。
2.如权利要求1所述的方法,其中,在设计阶段,将该程序代码编译为静态载入库,直接与该至少一静态链接函数库链接;在执行阶段,则按上述步骤(A)~(E)建立与所述静态链接函数库的链接。
3.如权利要求1所述的方法,其还包含步骤:
(F)该程序代码的动态链接函数库被加载后,依据主应用程序所传送的函数及变量的存储位置,更正其调用的该至少一静态链接函数库的函数及变量。
4.如权利要求3所述的方法,其中,于步骤(F)中,该程序代码的动态链接函数库是利用该函数指针变量结构,以动态更正其调用的该至少一静态链接函数库的函数。
5.如权利要求4所述的方法,其中,于步骤(F)中,该程序代码的动态链接函数库是利用该变量指针变量,以动态更正其调用的该至少一静态链接函数库的变量。
6.如权利要求1所述的方法,其中,所述变量指针变量为全局变量指针变量。
7.如权利要求1所述的方法,其中,所述静态链接函数库为核心函数库,所述程序代码为周边函数库的程序代码。
8.如权利要求1所述的方法,其中,所述方法应用于一嵌入式系统。
9.一种动态链接函数库与主应用程序共享静态链接函数库的方法,该动态链接函数库链接至少一静态链接函数库,该方法包含下列步骤:
(a)于该动态链接函数库中,建立该至少一静态链接函数库的一函数指针变量结构,并建立该函数指针变量结构与该至少一静态链接函数库的函数之间的链接;
(b)于该动态链接函数库中,建立该至少一静态链接函数库的一变量指针变量,并建立该变量指针变量与该至少一静态链接函数库的变量之间的链接;
(c)将主应用程序中调用到的该至少一静态链接函数库所属的函数转换为对应的函数指针变量;
(d)将主应用程序中调用到的该至少一静态链接函数库所属的变量转换为对应的变量指针变量;以及
(e)编译该动态链接函数库程序代码为动态链接函数库,于主应用程序中加载该动态链接函数库,并将函数及变量的存储位置由动态链接函数库传给该主应用程序。
10.如权利要求9所述的方法,其还包含步骤:
(f)该主应用程序加载动态链接函数库后,主应用程序取得来自动态链接函数库的函数及变量的存储位置,更正其调用该至少一静态链接函数库的函数及变量。
11.如权利要求10所述的方法,其中,于步骤(f)中,该主应用程序是利用该函数指针变量结构,以动态更正其调用该至少一静态链接函数库的函数。
12.如权利要求11所述的方法,其中,于步骤(f)中,该主应用程序是利用该变量指针变量,以动态更正其调用该至少一静态链接函数库的变量。
13.如权利要求9所述的方法,其中,所述变量指针变量为全局变量指针变量。
14.如权利要求9所述的方法,其中,所述静态链接函数库为核心函数库。
15.如权利要求9所述的方法,其中,所述方法应用于一嵌入式系统。
CN2006101119121A 2006-08-24 2006-08-24 动态链接函数库与主应用程序共享静态链接函数库的方法 Expired - Fee Related CN101131635B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2006101119121A CN101131635B (zh) 2006-08-24 2006-08-24 动态链接函数库与主应用程序共享静态链接函数库的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2006101119121A CN101131635B (zh) 2006-08-24 2006-08-24 动态链接函数库与主应用程序共享静态链接函数库的方法

Publications (2)

Publication Number Publication Date
CN101131635A true CN101131635A (zh) 2008-02-27
CN101131635B CN101131635B (zh) 2010-04-07

Family

ID=39128912

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006101119121A Expired - Fee Related CN101131635B (zh) 2006-08-24 2006-08-24 动态链接函数库与主应用程序共享静态链接函数库的方法

Country Status (1)

Country Link
CN (1) CN101131635B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010057388A1 (zh) * 2008-11-18 2010-05-27 腾讯科技(深圳)有限公司 一种嵌入式平台和在嵌入式平台上动态链接程序的方法
CN101763273A (zh) * 2008-12-26 2010-06-30 上海闻泰电子科技有限公司 一种在嵌入式系统的扩展存储器中动态装入代码的方法
CN101937356A (zh) * 2010-09-15 2011-01-05 青岛海信移动通信技术股份有限公司 一种编译WebKit浏览器的方法及装置
CN102467452A (zh) * 2010-11-16 2012-05-23 北京中电华大电子设计有限责任公司 一种静态存储分配的局部非静态数据的存储空间分配方法
CN101882067B (zh) * 2009-05-08 2014-02-19 上海科泰世纪科技有限公司 实现函数托管的方法和装置
CN104142846A (zh) * 2014-08-06 2014-11-12 汉柏科技有限公司 一种程序脚本编译方法和装置
CN103838564B (zh) * 2012-11-27 2017-02-15 重庆新媒农信科技有限公司 一种属性加载方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050039196A1 (en) * 2003-08-13 2005-02-17 Sasidharan Prasanth Nalini Method and system for using a library

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8499291B2 (en) 2008-11-18 2013-07-30 Tencent Technology (Shenzhen) Company Limited Method for dynamically linking program on embedded platform and embedded platform
WO2010057388A1 (zh) * 2008-11-18 2010-05-27 腾讯科技(深圳)有限公司 一种嵌入式平台和在嵌入式平台上动态链接程序的方法
RU2473111C1 (ru) * 2008-11-18 2013-01-20 Тенсент Текнолоджи (Шэньчжэнь) Компани Лимитед Способ динамической компоновки программы на встроенной платформе и встроенная платформа
CN101763273A (zh) * 2008-12-26 2010-06-30 上海闻泰电子科技有限公司 一种在嵌入式系统的扩展存储器中动态装入代码的方法
CN101763273B (zh) * 2008-12-26 2014-08-13 上海闻泰电子科技有限公司 一种在嵌入式系统的扩展存储器中动态装入代码的方法
CN101882067B (zh) * 2009-05-08 2014-02-19 上海科泰世纪科技有限公司 实现函数托管的方法和装置
WO2012034421A1 (zh) * 2010-09-15 2012-03-22 青岛海信移动通信技术股份有限公司 一种编译webkit浏览器的方法及装置
CN101937356B (zh) * 2010-09-15 2013-04-10 青岛海信移动通信技术股份有限公司 一种编译WebKit浏览器的方法及装置
CN101937356A (zh) * 2010-09-15 2011-01-05 青岛海信移动通信技术股份有限公司 一种编译WebKit浏览器的方法及装置
CN102467452A (zh) * 2010-11-16 2012-05-23 北京中电华大电子设计有限责任公司 一种静态存储分配的局部非静态数据的存储空间分配方法
CN102467452B (zh) * 2010-11-16 2014-08-27 北京中电华大电子设计有限责任公司 一种静态存储分配的局部非静态数据的存储空间分配方法
CN103838564B (zh) * 2012-11-27 2017-02-15 重庆新媒农信科技有限公司 一种属性加载方法及系统
CN104142846A (zh) * 2014-08-06 2014-11-12 汉柏科技有限公司 一种程序脚本编译方法和装置

Also Published As

Publication number Publication date
CN101131635B (zh) 2010-04-07

Similar Documents

Publication Publication Date Title
CN101131635B (zh) 动态链接函数库与主应用程序共享静态链接函数库的方法
JP4183399B2 (ja) 複数言語のコンパイル方法及びシステム
CN100478874C (zh) 用于扩充配置相关可扩充软件的方法和系统
EP2041655B1 (en) Parallelization and instrumentation in a producer graph oriented programming framework
CN106415495B (zh) 用于应用开发的编程系统和语言
US7861240B2 (en) Task distribution program and task distribution device for a processor device having multiprocessors
US20070294679A1 (en) Methods and apparatus to call native code from a managed code application
US7493605B2 (en) Method and a software product for adapting a .Net framework compliant reflection mechanism to a java environment
CN103069385A (zh) 动态加载基于图的计算
US7890944B2 (en) Method for sharing static link code by software components in DLL and main program
CN101859244A (zh) 多工具链工程构建方法及系统
US20110126179A1 (en) Method and System for Dynamic Patching Software Using Source Code
Thomsen et al. Easy and effective parallel programmable ETL
CN102591777A (zh) 一种单元测试代码生成方法及装置
Adams et al. Object-oriented programming in Scheme
US10324693B2 (en) Optimizing multiple invocations of graphics processing unit programs in Java
US20040123308A1 (en) Hybird of implicit and explicit linkage of windows dynamic link labraries
Wall et al. The Mahler experience: Using an intermediate language as the machine description
Rajan et al. Capsule-oriented programming in the Panini language
US7827525B1 (en) Data object utilization in software applications
Aldinucci et al. A framework for experimenting with structured parallel programming environment design
Torres et al. Supporting efficient overlapping of host-device operations for heterogeneous programming with CtrlEvents
Chapman et al. OpenMP and HPF: Integrating two paradigms
Keznikl et al. Extensible Polyglot Programming Support in Existing Component Frameworks
Mukherjee et al. Develop once deploy anywhere achieving adaptivity with a runtime linker/loader framework

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100407

Termination date: 20160824