US5634114AExpiredUtility

Dynamic link library version negotiation

Assignee: INTEL CORPPriority: Nov 18, 1993Filed: Jul 3, 1995Granted: May 27, 1997
Est. expiryNov 18, 2013(expired)· nominal 20-yr term from priority
G06F 9/44536G06F 8/71G06F 9/44521
85
PatentIndex Score
133
Cited by
13
References
16
Claims

Abstract

The version negotiation of the present invention insures that there will always be an expected data and control interface between a Dynamic Link Library (DLL) and an application program that relies on the DLL. The application program makes an initial call to the DLL that specifies the DLL version with which it prefers to operate. The DLL compares this preferred version number to the version numbers that it supports, which are in a supported DLL version table within the DLL. If the preferred version matches one of the table entries, then the DLL returns an "OK" flag to the application program. In this case, the application program goes on with its normal execution. However, if the preferred version is not supported, then the DLL returns to the application program a "not OK" flag and a list of versions that it does support from its table of supported versions. In response, the application program looks up the versions on this list in a table of compatible versions contained within the application program. If none are found, then the application performs an error trap. If one is found, then the application program calls the DLL to establish that version as the one which will be used. The present invention advantageously utilizes a header file in order to designate DLL versions.

Claims

exact text as granted — not AI-modified
I claim: 
     
       1. A method of executing an application program and a Dynamic Link Library (DLL), comprising: said application program making an initial call to said DLL to specify a preferred version number;   said DLL looking up said preferred version number in a supported version table, and, if found, returning to said application program a "preferred version OK" indication, and, if not found, returning to said application program both a "preferred version not supported" indication and at least one supported version number from said supported version table, said supported version table including a set of independent version numbers that said DLL supports;   said application program continuing its execution in response to said "preferred version OK" indication; and   said application program, in response to said "preferred version not supported" indication, comparing each said supported version number against each of a set of independent version numbers with which said DLL is compatible, said compatible version set being held in a compatible version table, and, if there is no match there between, performing an error trap operation, and, if there is a match there between, making an initial call to said DLL specifying as said preferred version number the version number of said match.   
     
     
       2. A method according to claim 1, further comprising: said DLL setting the value of a current version indicator internal to said DLL to said preferred version just prior to returning said "preferred version OK" indication, said DLL using said internal version indicator to ensure support of said preferred version.   
     
     
       3. A method according to claim 1, further comprising: said application program setting the value of a current version indicator internal to said application program to said preferred version just prior to continuing its execution.   
     
     
       4. A method of negotiating dynamic link library (DLL) version compatibility, comprising: (a) translating a header file and a DLL source code file into a DLL, said header file specifying a current DLL version number, and said DLL having a table that includes a set of independent version numbers which said DLL supports:   (b) translating said header file and an application source file into an application program, said header file specifying an expected DLL version number, and said application program having a table that incudes a set of independent version numbers with which said application program is compatible; and   (c) executing said application program and said DLL, said execution comprising: (i) said application program making an initial call to said DLL to specify as a preferred version number said current DLL version number from said header file;   (ii) said DLL looking up said preferred version number in said supported version table, and, if found, returning to said application program a "preferred version OK" indication and, if not found, returning to said application program both a "preferred version not supported" indication and at least one supported version number from said supported version table;   (iii) said application program continuing its execution in response to said "preferred version OK" indication; and   (iv) said application program, in response to said "preferred version not supported" indication, comparing each said supported version number against each compatible version number in said compatible version table, and, if there is no match there between, performing an error trap operation, and, if there is a match there between, making an initial call to said DLL specifying as said preferred version number the version number of said match.     
     
     
       5. A method according to claim 4, wherein said execution step further comprises: (v) said DLL setting the value of a current version indicator internal to said DLL to said preferred version just prior to returning said "preferred version OK" indication, said DLL using said internal version indicator to ensure support of said preferred version.   
     
     
       6. A method according to claim 4, wherein said execution step further comprises: (v) said application program setting the value of a current version indicator internal to said application program to said preferred version just prior to continuing its execution.   
     
     
       7. In a computer system comprising a bus, a processor coupled to said bus, a memory coupled to said bus and an input/output device coupled to said bus, a method of executing an application program and a Dynamic Link Library (DLL), said method comprising the computer implemented steps of: making an initial call originating from said application program to said DLL to specify a preferred version number associated with said application program;   looking up said preferred version number by said DLL in a supported version table stored within said DLL, said supported version table including a set of independent version numbers that said DLL supports;   returning to said application program a "preferred version OK" indication if said preferred version number is located within said supported version table;   returning to said application program both a "preferred version not supported" indication and at least one supported version number from said supported version table if said preferred version is not located within said supported version table;   continuing execution of said application program in response to said "preferred version OK" indication returned thereto; and   said application program, in response to said "preferred version not supported" indication, comparing each said supported version number against each of a set of independent version numbers with which it is compatible, said compatible version set being held in a compatible version table stored within said application program, and, if there is no match there between, performing an error trap operation, and, if there is a match there between, making an initial call to said DLL specifying as said preferred version number the version number of said match.   
     
     
       8. A method according to claim 7, further comprising the step of: said DLL setting the value of a current version indicator internal to said DLL to said preferred version just prior to returning said "preferred version OK" indication, said DLL using said internal version indicator to ensure support of said preferred version.   
     
     
       9. A method according to claim 7, further comprising the step of: said application program setting the value of a current version indicator internal to said application program to said preferred version just prior to continuing its execution.   
     
     
       10. In a computer system comprising a bus, a processor coupled to said bus, a memory coupled to said bus and an input/output device coupled to said bus, a method of negotiating dynamic link library (DLL) version compatibility, said method comprising the steps of: (a) translating a header file and a DLL source code file into a DLL, said header file specifying a current DLL version number, and said DLL having a table that includes a set of independent version numbers which said DLL supports;   (b) translating said header file and an application source file into an application program, said header file specifying an expected DLL version number, and said application program having a table that includes a set of independent version numbers with which said DLL is compatible; and   (c) executing said application program and said DLL, said execution comprising: (i) making an initial call originating from said application program to said DLL to specify as a preferred version number said current DLL version number from said header file;   (ii) looking up said preferred version number by said DLL in said supported version table stored with said DLL, and, if found, returning to said application program a "preferred version OK" indication and, if not found, returning to said application program both a "preferred version not supported" indication and at least one supported version number from said supported version table;   (iii) continuing execution of said application program in response to said "preferred version OK" indication returned thereto; and   (iv) said application program, in response to said "preferred version not supported" indication, comparing said supported version number against each said compatible version number, and, if there is a match there between, making an initial call to said DLL specifying as a preferred version number the version number of said match.     
     
     
       11. A method according to claim 10, wherein step (iv) performs the further step of: if there is no match between said returned version supported against said compatible version table stored within said application program, performing an error trap operation.   
     
     
       12. A method according to claim 11, wherein said execution step further comprises the step of: (v) said DLL setting the value of a current version indicator internal to said DLL to said preferred version just prior to returning said "preferred version OK" indication, said DLL using said internal version indicator to ensure support of said preferred version.   
     
     
       13. A method according to claim 11, wherein said execution step further comprises the step of: (v) said application program setting the value of a current version indicator internal to said application program to said preferred version just prior to continuing its execution.   
     
     
       14. A computer system comprising: a bus, a processor coupled to said bus, a memory coupled to said bus and an input/output device coupled to said bus, wherein said processor implements a method of executing an application program and a Dynamic Link Library (DLL);   said processor making an initial call originating from said application program to said DLL to specify a preferred version number associated with said application program;   said processor looking up said preferred version number by said DLL in a supported version table that includes a set of version numbers which said DLL supports;   said processor returning to said application program a "preferred version OK" indication if said preferred version number is located within said supported version table;   said processor returning to said application program both a "preferred version not supported" indication and at least one supported version number from said supported version table if said preferred version is not located within said supported version table;   said processor continuing execution of said application program in response to said "preferred version OK" indication returned thereto; and   said application program, in response to said "preferred version not supported" indication, instructing said processor to compare each said supported version number against each of a set of independent version numbers; with which said DLL is compatible, said set being held in a compatible version table stored within said application program, and, if there is no match there between, performing an error trap operation, and, if there is a match there between, said processor making an initial call to said DLL specifying as said preferred version number the version number of said match.   
     
     
       15. A computer system according to claim 14, wherein said DLL instructs said processor to set the value of a current version indicator internal to said DLL to said preferred version just prior to returning said "preferred version OK" indication, said DLL using said internal version indicator to ensure support of said preferred version. 
     
     
       16. A computer system according to claim 14, wherein said application program instructs said processor to set the value of a current version indicator internal to said application program to said preferred version just prior to continuing its execution.

Join the waitlist — get patent alerts

Track US5634114A — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.