Dynamic link library version negotiation
First 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.
1 Assignment
0 Petitions
Accused Products
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.
114 Citations
16 Claims
-
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. - View Dependent Claims (2, 3)
-
-
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. - View Dependent Claims (5, 6)
-
-
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. - View Dependent Claims (8, 9)
-
-
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. - View Dependent Claims (11, 12, 13)
-
-
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. - View Dependent Claims (15, 16)
-
Specification