WO2005052790A1 - Mapping of dynamic link libraries in a computing device - Google Patents
Mapping of dynamic link libraries in a computing device Download PDFInfo
- Publication number
- WO2005052790A1 WO2005052790A1 PCT/GB2004/004551 GB2004004551W WO2005052790A1 WO 2005052790 A1 WO2005052790 A1 WO 2005052790A1 GB 2004004551 W GB2004004551 W GB 2004004551W WO 2005052790 A1 WO2005052790 A1 WO 2005052790A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- dll
- platform
- computing device
- extension
- functions
- Prior art date
Links
- 238000013507 mapping Methods 0.000 title description 3
- 230000006870 function Effects 0.000 claims abstract description 64
- 238000000034 method Methods 0.000 claims description 27
- 238000007792 addition Methods 0.000 description 14
- 239000008186 active pharmaceutical agent Substances 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000003339 best practice Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44552—Conflict resolution, i.e. enabling coexistence of conflicting executables
Definitions
- the present invention relates to a method of accessing data in a computing device and, in particular to a method of accessing data held in a dynamic link library in the computing device.
- the present invention also relates to a computing device controlled by the method.
- computing device as used herein is to be expansively construed to cover any form of electrical device and includes, data recording devices, such as digital still and movie cameras of any form factor, computers of any type or form, including hand held and personal computers, and communication devices of any form factor, including mobile phones, smart phones, communicators which combine communications, image recording and/or playback, and computing functionality within a single device, and other forms of wireless and wired information devices.
- data recording devices such as digital still and movie cameras of any form factor
- computers of any type or form including hand held and personal computers
- communication devices of any form factor including mobile phones, smart phones, communicators which combine communications, image recording and/or playback, and computing functionality within a single device, and other forms of wireless and wired information devices.
- the operating system can be regarded as the software that enables all the programs to be run on the computing device and can be key to greater operating efficiency and easier application development.
- An operating system manages the hardware and software resources of the computing device. These resources include such things as the central processor unit (CPU), memory, and the disk space, if a disc forms part of or is used in conjunction with the computing device. As such, the operating system provides a stable, consistent way for applications running on the computing device to deal with the hardware resources of the computing device without the application needing to know all the details of the physical resources available to the hardware.
- CPU central processor unit
- memory volatile and non-volatile memory
- the disk space if a disc forms part of or is used in conjunction with the computing device.
- Another task that may be performed by the operating system is that of providing a consistent application program, or executable, interface (API). This is especially important if there is to be more than one of a particular type of computer using the operating system, or if the hardware making up the computer is ever open to change. This is particularly the case when the core operating system has several different users, such as can typically occur with computing devices in the form of wireless communications devices, such as smart phones.
- API application program
- a consistent application program interface allows an application program for one computing device to run on another computing device of the same type, notwithstanding that the amount of memory or the quantity of storage is different on the two devices. Even if a particular computing device is unique, the operating system can ensure that application programs continue to run when hardware upgrades and updates occur, because the operating system and not the application program is responsible for managing the hardware and the distribution of its resources.
- certain functions and modules which may be common to a number of application programs may be stored in the form of a library so that these functions and modules are only stored once and not replicated in each of the application programs with which they are to be used.
- the contents of the library are therefore selectively linked to the application programs when they are loaded or run rather than being compiled within the individual application programs themselves. It follows that the same block of library code representing a function or module can be shared between several tasks to run on the device rather than each task containing copies of the routines it uses.
- DLLs dynamic link libraries
- CMOS libraries link dynamically with the application programs as the programs are run and therefore the libraries are commonly known as dynamic link libraries (DLLs).
- DLLs dynamic link libraries
- most modern computer operating systems provide a dynamic link library facility that enables certain executable procedures and functions to be provided in the form of a library that is separate from the application programs that execute on the computing device.
- an application program is dynamically linked to the library at runtime, so that the application program can call one or more of the procedures and functions that are exported by the library. Exported procedures are commonly referred to as entry points into the library.
- a DLL can be entered at any entry point.
- the first option is to refer to the entry points by name.
- the second option is to refer to the entry points by ordinal number. This latter option is frequently referred to as function ordinal mapping or function ordinal linking. Names are potentially long in comparison to ordinals and require additional code for their definition. Therefore, the use of names is generally considered to be wasteful of the Read Only Memory (ROM) and Random Access Memory (RAM) resources of the computing device in comparison to the use of ordinal numbers.
- ROM Read Only Memory
- RAM Random Access Memory
- Ordinal linking of the access points is therefore the preference in certain operating systems, and particularly in those operating systems for use in smart phones because these types of computing devices have very restricted physical resources in comparison to those available in desktop or portable PC devices, and therefore the efficient use of code is of paramount importance.
- DLLs provide, therefore, a way by which application programs can be provided in modular format so that functionality can be updated and reused more easily. They also help reduce memory overhead when several applications use the same functionality at the same time, because although each application is provided with a copy of the data, they can share the code. Furthermore, the dynamic linking allows a module to include only the information needed to locate an exported DLL function at load time or run time.
- the present invention seeks to provide a method of providing a dynamic link library in a computing device in which these problems are substantially alleviated.
- a method of providing a dynamic link library for providing functions for use by an executable program in a computing device comprising providing the dynamic link library as a first part having first locations from which one or more first functions may be accessed for use by the executable program, and an extension part for enabling the executable program to access one or more further functions additional to the one or more first functions and located in the first part at locations additional to the first locations.
- a computing device operating according to the method of the first aspect.
- a third aspect of the present invention there is provided computer software arranged to cause a computing device to operate in accordance with the first aspect.
- Figure 1 is a diagram showing schematically smart phone platform evolution
- Figure 2 is a diagram showing schematically how conflict can arise between ordinals of a DLL with parallel platform evolution
- Figure 3 is a diagram showing schematically how an application on a smart phone can access original functions from a DLL;
- Figure 4 is a diagram showing how a DLL can be provided in accordance with the method of the present invention
- Figure 5 is a diagram showing how an application can access a function from a modified DLL using a DLL extension provided in accordance with the method of the present invention.
- FIG 1 an example is shown of a typical evolution of a smart phone. For clarity, this evolution is shown in the form of a family tree. The figure shows a small part of the evolutional "family tree", but the key point about this example is that there is no single linear evolution path from one release of an entity to the next.
- the operating system evolves from OS version X to OS version X+1.
- the device platform which typically may be the device user interface, evolves from platform Y to platform Y+1 , with platform Y being based on OS version X and platform Y+1 being based on OS version X+1.
- Product A evolves into product B, and these are both based on platform Y.
- Product B then evolves into product B version 2, but this is based on platform Y+1. This is because at each level of the evolution there has been a requirement to add functionality to the basic platform.
- the present invention seeks to provide a system which enables users of the system to add functionality to APIs in a safe, extensible way without endangering future compatibility.
- a third party may add functionality to an existing API, and in particular to an API which is linked by ordinal, in a way which does not compromise future evolution of that API.
- a second objective is that any future evolution of the original API which does occur will not compromise the third party added functionality.
- the present invention is applicable to any situation where a third party requires to add functionality to an existing API which is not owned by that party. It does not apply when the owner of an API is extending that API, because by definition the owner is the maintainer of the API.
- the present invention can also be used to remove further potential for conflict where additions have already been made to an API by a third party.
- Figure 3 shows an application linking to Original Functions stored against a library extension (LIB) of a platform DLL.
- the application uses the functions stored in the DLL via the LIB file ordinals. Therefore, when the application calls for Original Function 1 , a link is provided to ordinal 1 of the library extension which in turn exports the functionality provided by Original Function 1 for use by the application; and so on for the remaining Original Functions stored at other ordinals in the DLL.
- This is a known pattern of DLL linkage and is employed, for example, in the Symbian OSTM operating system.
- Figure 4 illustrates how an Extension DLL pattern may be used by an application for some product addition functions which have been added to the Original Functions provided from the platform DLL. These product additions are exported from the platform DLL via additional ordinals 6 and 7. However, these additional ordinals 6 and 7 are not linked to directly by the application but via the extension DLL.
- the extension DLL is actually accessed via an extension library holding the ordinal addresses for the extension DLL, in a similar manner to the access route for the platform DLL. With the present invention, it is not permitted for the application to use the additional ordinals from the platform DLL directly. But, as can be seen from figure 4, the application is permitted to use the Original Functions 1 to 5 by exporting them directly from the platform DLL. This is because the Original Functions are known both to the operating system and the application to be exportable from the DLL via, respectively, ordinals 1 to 5 for use by the application.
- extension DLL need not be provided purely as an adapter for linking to the platform DLL, but may also be arranged to contain the majority of extra code required to provide the additional functionality for the application programs. Moreover, the extension DLL may be provided in a way such that it is not specific to a single Platform DLL.
- a single "Product Extension” DLL may be provided in the ROM of the computing device, but this single extension DLL is arranged to provide the interface to the additional functionality of more than one, and perhaps even all of the platform DLLs.
- the method of the present invention is not restricted to the provision of a respective extension DLL for each platform DLL. It follows that a product manufacturer may choose to add a single extension DLL to provide a link to several platform DLLs, or the additional functionality (extension functions) may be provided by arranging the extension DLL as an actual extension to an existing product DLL. Alternatively, the extension functions may be grouped in a manner that bears no relationship to the arrangement of the original platform DLLs.
- the third party application is linked to Ordinals 1 to 5 of Platform. lib, the library extension of the platform DLL, and ordinals 1 & 2 of extension. lib, the library extension of the extension DLL.
- the application has no visibility of ordinals 6 & 7 of Platform. lib.
- a third party SDK for the product does not even need to contain the extended version of Platform. lib. Therefore, with the present invention it is possible to substitute the original (ordinals 1 to 5) version of the library extension Platform. lib in the SDK, and only use the extended (ordinals 1 to 7) version of the library for platform development. This means that there is no possibility of code produced by the third party using the additional ordinals 6 and 7.
- Figure 5 shows a later version of the platform, when the owner of the platform DLL has added some more core functionality to the API of the platform DLL.
- Ordinals 6 & 7 have now been used by the owner in adding the new functions. Problems would now arise if the application linking to this platform DLL was expecting to see Product Additions 1 and 2 at these ordinals, as in the platform version shown in figure 4, because ordinals 6 and 7 are now used, respectively, to export Owner Additions 1 and 2.
- the problems are avoided since the Product Addition functions 1 and 2 are always called via the extension DLL. Therefore it is acceptable for these functions each to move to a different ordinal position.
- Product Additions are moved, respectively, from ordinals 6 & 7 to ordinals 8 & 9.
- the following code extract shows how a function could be added to a header file of a platform DLL.
- the public ExtensionFunction will be implemented in the Extension DLL. It will therefore not be exported from Platform.dll, but from Extension.dll.
- the private DoExtensionFunction will be implemented in the Platform.dll and therefore will be exported from Platform.dll. This function is made private so that the compiler will prevent third party code from calling this function through its ordinal export.
- Class CMyClass public CBase ⁇ public : // The supplied API of the class
- the implementation in the platform DLL is to add the code for DoExtensionFunction. This should contain the minimum of code necessary for this extension function to be included in the DLL, so as to minimise the amount of change required.
- This function will be exported in Platform. lib. //PlatformDll . cpp
- extension.dll The implementation in the extension.dll is primarily to enable the call through to the private DoExtensionFunction in the platform DLL.
- DoExtensionFunction is private, so can only be called from within the same class. Note that the call to DoExtensionFunction is surrounded by other code which does not need to be in the platform.dll, and therefore is implemented here to minimise the impact on the platform DLL.
- the code should also ensure that only essential changes are made to the platform DLL. Therefore, all other functionality should preferably be implemented in the extension DLL. This provides the additional benefit that there is less chance of clashing functionality arising from subsequent changes to the platform, and thus future integration of newer platforms will be less troublesome. Also, if any extension functions are provided in the platform DLL, these should preferably be made as private functions. This makes it more difficult for a third party to inadvertently use an extension function in the original API rather than in the extension DLL. The compiler will then help to enforce the rule that has been established.
- a publicly released SDK should only include the original LIB files as supplied. This would mean that third party code could not possibly call any of the platform additional ordinals, as they are not present in the LIB files. A third party therefore would have no choice but to access the extension functionality via the extension DLL, and therefore would not encounter compatibility problems with future platforms.
- extension functions By making extension functions private, and excluding the modified libraries from the SDK, third party code is prevented from calling the product additional functions created by the provider of the platform DLL.
- ROM code within a device also uses the extension DLLs.
- ROM code can be rebuilt at some future point in time against new LIB files, it is preferable and highly desirable to maximise binary compatibility wherever possible and at all times during the lifecycle of any particular device. It follows that this compatibility can be enabled if the extension DLL of the present invention is utilised in the above manner.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Vehicle Body Suspensions (AREA)
- Photoreceptors In Electrophotography (AREA)
- Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Communication Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
Claims
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE602004011974T DE602004011974T2 (en) | 2003-10-28 | 2004-10-28 | ILLUSTRATION OF DYNAMIC LINK LIBRARIES IN A DATA PROCESSING DEVICE |
JP2006537413A JP2007510210A (en) | 2003-10-28 | 2004-10-28 | Mapping dynamic link libraries on computer equipment |
EP04769039A EP1678607B1 (en) | 2003-10-28 | 2004-10-28 | Mapping of dynamic link libraries in a computing device |
US10/595,549 US7690007B2 (en) | 2003-10-28 | 2004-10-28 | Mapping of dynamic link libraries in a computing device |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0325145A GB2407655B (en) | 2003-10-28 | 2003-10-28 | Mapping of dynamic link libraries in a computing device |
GB0325145.1 | 2003-10-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2005052790A1 true WO2005052790A1 (en) | 2005-06-09 |
Family
ID=29725515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/GB2004/004551 WO2005052790A1 (en) | 2003-10-28 | 2004-10-28 | Mapping of dynamic link libraries in a computing device |
Country Status (8)
Country | Link |
---|---|
US (1) | US7690007B2 (en) |
EP (1) | EP1678607B1 (en) |
JP (1) | JP2007510210A (en) |
AT (1) | ATE386976T1 (en) |
DE (1) | DE602004011974T2 (en) |
ES (1) | ES2302031T3 (en) |
GB (1) | GB2407655B (en) |
WO (1) | WO2005052790A1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0607068D0 (en) * | 2006-04-07 | 2006-05-17 | Symbian Software Ltd | Improvement relating to method of embedding software in computing devices |
US9098316B2 (en) * | 2008-09-22 | 2015-08-04 | International Business Machines Corporation | Routing function calls to specific-function dynamic link libraries in a general-function environment |
JP6078515B2 (en) * | 2014-11-13 | 2017-02-08 | 京セラドキュメントソリューションズ株式会社 | Electronic equipment and programs |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2143488C (en) * | 1995-02-27 | 2000-01-11 | Robert Paul Duncan | Dynamic link libraries without linker or loader support |
US6052778A (en) * | 1997-01-13 | 2000-04-18 | International Business Machines Corporation | Embedded system having dynamically linked dynamic loader and method for linking dynamic loader shared libraries and application programs |
JPH11110194A (en) * | 1997-10-06 | 1999-04-23 | Toshiba Corp | Connection method to external library function and recording medium in which the connection method is recorded and programmed |
US6865735B1 (en) * | 1997-10-07 | 2005-03-08 | University Of Washington | Process for rewriting executable content on a network server or desktop machine in order to enforce site specific properties |
US6292843B1 (en) * | 1998-01-16 | 2001-09-18 | International Business Machines Corporation | Quick loading of run time dynamic link library for OS/2 |
US6324687B1 (en) * | 1998-12-03 | 2001-11-27 | International Business Machines Corporation | Method and apparatus to selectively control processing of a method in a java virtual machine |
US6351779B1 (en) * | 1999-03-12 | 2002-02-26 | Agilent Technologies, Inc. | Extension library to standard visa library for support of complex I/O functions |
US6442752B1 (en) * | 1999-08-26 | 2002-08-27 | Unisys Corporation | Method, apparatus, and computer program product for replacing a dynamic link library (dll) of a first computing environment with a dll of a second computing environment that can be invoked from the first computing environment in a transparent manner |
US6567093B1 (en) * | 1999-09-09 | 2003-05-20 | Novatek Microelectronics Corp. | Single semiconductor chip for adapting video signals to display apparatus |
GB2354851B (en) * | 1999-10-01 | 2004-07-21 | Ibm | Web browser extension and method for processing data content of web pages |
US6658658B1 (en) * | 2000-02-17 | 2003-12-02 | International Business Machines Corporation | Implicit forwarding and resolving of a reference made by an importing module to an exporting module for a specified export |
US6874148B1 (en) * | 2000-06-14 | 2005-03-29 | National Instruments Corporation | System and method for exporting a graphical program to a shared library |
FR2820221B1 (en) * | 2001-02-01 | 2004-08-20 | Cimai Technology | METHOD AND SYSTEM FOR MANAGING EXECUTABLES WITH SHARED LIBRARIES |
US6804709B2 (en) * | 2001-02-20 | 2004-10-12 | Microsoft Corporation | System uses test controller to match different combination configuration capabilities of servers and clients and assign test cases for implementing distributed testing |
US7191184B2 (en) * | 2001-05-02 | 2007-03-13 | National Instruments Corporation | Optimized storage for measurement data |
US7769823B2 (en) * | 2001-09-28 | 2010-08-03 | F5 Networks, Inc. | Method and system for distributing requests for content |
US7013423B2 (en) * | 2002-06-27 | 2006-03-14 | International Business Machines Corporation | Omitting forwarder pages in a history list in a browser |
US20040077309A1 (en) * | 2002-10-18 | 2004-04-22 | Richard Brass | Wireless signal forwarder |
US20040123308A1 (en) * | 2002-12-20 | 2004-06-24 | Siemens Information And Communication Networks, Inc. | Hybird of implicit and explicit linkage of windows dynamic link labraries |
US7308684B2 (en) * | 2003-06-16 | 2007-12-11 | Microsoft Corporation | Classifying software and reformulating resources according to classifications |
US7210124B2 (en) * | 2003-06-16 | 2007-04-24 | Microsoft Corporation | Reformulating resources with nodes reachable from defined entry points |
US7590736B2 (en) * | 2003-06-30 | 2009-09-15 | Microsoft Corporation | Flexible network load balancing |
-
2003
- 2003-10-28 GB GB0325145A patent/GB2407655B/en not_active Expired - Fee Related
-
2004
- 2004-10-28 DE DE602004011974T patent/DE602004011974T2/en not_active Expired - Lifetime
- 2004-10-28 EP EP04769039A patent/EP1678607B1/en not_active Expired - Lifetime
- 2004-10-28 JP JP2006537413A patent/JP2007510210A/en not_active Withdrawn
- 2004-10-28 WO PCT/GB2004/004551 patent/WO2005052790A1/en active IP Right Grant
- 2004-10-28 AT AT04769039T patent/ATE386976T1/en not_active IP Right Cessation
- 2004-10-28 ES ES04769039T patent/ES2302031T3/en not_active Expired - Lifetime
- 2004-10-28 US US10/595,549 patent/US7690007B2/en not_active Expired - Fee Related
Non-Patent Citations (2)
Title |
---|
"DYNAMIC INTERCEPTION OF IMPORTED PROCEDURE CALLS", IBM TECHNICAL DISCLOSURE BULLETIN, IBM CORP. NEW YORK, US, vol. 39, no. 1, January 1996 (1996-01-01), pages 197 - 201, XP000556373, ISSN: 0018-8689 * |
"FORWARDER DYNAMIC LINK LIBRARIES AS A METHOD FOR SERVICING SOFTWARE", IBM TECHNICAL DISCLOSURE BULLETIN, IBM CORP. NEW YORK, US, vol. 38, no. 11, 1 November 1995 (1995-11-01), pages 407 - 408, XP000547408, ISSN: 0018-8689 * |
Also Published As
Publication number | Publication date |
---|---|
ATE386976T1 (en) | 2008-03-15 |
US7690007B2 (en) | 2010-03-30 |
EP1678607B1 (en) | 2008-02-20 |
ES2302031T3 (en) | 2008-07-01 |
DE602004011974T2 (en) | 2009-02-12 |
US20070220508A1 (en) | 2007-09-20 |
JP2007510210A (en) | 2007-04-19 |
GB2407655A (en) | 2005-05-04 |
GB2407655B (en) | 2009-08-05 |
EP1678607A1 (en) | 2006-07-12 |
GB0325145D0 (en) | 2003-12-03 |
DE602004011974D1 (en) | 2008-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Richter | CLR via C | |
US10089119B2 (en) | API namespace virtualization | |
US7409694B2 (en) | Highly componentized system architecture with loadable virtual memory manager | |
EP1810134B1 (en) | Platform-independent dynamic linking | |
US7143421B2 (en) | Highly componentized system architecture with a demand-loading namespace and programming model | |
US8434099B2 (en) | Efficient linking and loading for late binding and platform retargeting | |
US7565665B2 (en) | Efficient linking and loading for late binding and platform retargeting | |
US20060080680A1 (en) | Platform independent dynamic linking | |
US20060080635A1 (en) | Dynamic linking in constrained environment | |
US7162711B2 (en) | Method of automatically virtualizing core native libraries of a virtual machine | |
US20040268301A1 (en) | Adding new compiler methods to an integrated development environment | |
US6314445B1 (en) | Native function calling | |
CN106796521B (en) | API version control independent of product release | |
US20090133042A1 (en) | Efficient linking and loading for late binding and platform retargeting | |
WO2006040506A1 (en) | Run tune dynamic linking | |
US20060080681A1 (en) | Mechanism to extend functionality in a restricted computing environment | |
US7146610B2 (en) | Method for upgrading software components without system shutdown | |
US20040123308A1 (en) | Hybird of implicit and explicit linkage of windows dynamic link labraries | |
US20080301719A1 (en) | Mapping Of Dynamic Link Libraries In Computing Devices | |
US20060080683A1 (en) | Mechanism to circumvent restrictions of pre-written code components | |
US7216352B2 (en) | Method of reducing interference among applications co-located in a process when using dynamic libraries | |
EP1678607B1 (en) | Mapping of dynamic link libraries in a computing device | |
Meijer et al. | Overcoming independent extensibility challenges | |
KR20100110710A (en) | Method for simplifying interfaces having dynamic libraries | |
US8949868B2 (en) | Methods, systems and computer program products for dynamic linkage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2004769039 Country of ref document: EP Ref document number: 2006537413 Country of ref document: JP |
|
DPEN | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed from 20040101) | ||
WWP | Wipo information: published in national office |
Ref document number: 2004769039 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2007220508 Country of ref document: US Ref document number: 10595549 Country of ref document: US |
|
WWP | Wipo information: published in national office |
Ref document number: 10595549 Country of ref document: US |
|
WWG | Wipo information: grant in national office |
Ref document number: 2004769039 Country of ref document: EP |