How to Obtain the Version of VBRUN300.DLLLast reviewed: March 7, 1996Article ID: Q129875 |
The information in this article applies to:
SUMMARYThe function VBGetVersion(), documented in the Visual Basic API Reference file, returns the constant for version 3.0 in both Versions 3.0 and 4.0 of Visual Basic. This return value was preserved in order to maintain compatibility with many existing .VBX files that check for a version constant. This article describes a technique you can use to obtain the true version of Visual Basic. MORE INFORMATION At address SS:0020 (Hex), Visual Basic will load the address of a function table when a Visual Basic program is running. This address is always fixed, although the address will depend on whether the program is run from the design environment or being run as an executable. VBRUN300.DLL contained in Version 3.0 always loads an address different from the version 4.0 equivalent. The following table details these addresses. The 16-Bit Hexadecimal address found at SS:0020 for a Visual Basic program:
Mode Version 3.0 Version 4.0 -------------------------------------------------- Design/Run Mode 142E 39D2 Run as Executable 01ED 1A90These addresses are always fixed, so you can create a simple DLL to distinguish the versions of Visual Basic. It is important to note that the addresses listed in this article will probably change in any future releases of Visual Basic. Therefore a control developer should account for the fact that the technique described below may provide incorrect results with any future releases.
Step-by-Step Example
int FAR PASCAL _export WEP(int nParam) { return 1; } a. Choose Project from the Options menu. b. Choose the Linker button. c. Select the Input category. d. Add VBAPI.LIB. e. Build the DLL, and name it FINDVER.DLL. f. Move FINDVER.DLL into the WINDOWS\SYSTEM directory. a. Create a new project in Visual Basic. Form1 is created by default. b. Place the declaration for the DLL inside the Declarations section for the form:
Declare Function GetVersionVB Lib "findver.dll" () As Integer c. Place a command button (Command1) on Form1, and add the following code to the Command1_Click event to call the DLL function:
MsgBox Str(GetVersionVB()) d. Press the F5 key to run the program, and click the Command1 button to see a message box listing the version of Visual Basic. |
Additional reference words: 3.00 4.00 vb4win vb4all
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |