Search Tools Links Login

vbAdvance Help and Documentation


vbAdvance is a Visual Basic Add-In which gives access to advanced build features and many IDE convenience features. This post covers some advanced topics, and discusses some of the samples included with the package.

Webmasters Note

I attempted to contact Karl Peterson, Young Dynamic Software, and the webmaster of mvps.org, with no success.

I have approved the posting of this content on the basis that the persons or entities listed appear to have no further interest in the content, as well as the copyrights appear to have not been updated since at least 2007 for the content, or 2011 for mvps.org.

If any of the people or entities listed above have questions, comments or concerns with this post, please don't hesitate to use the contact form in the footer below to get ahold of me.

Concepts

VB5 and VB6 are able to build true Win32 native code executables by using what is essentially the Visual C++ compiler and linker. These build tools are a part of every VB 5 and VB 6 installation* and are as full featured as those found in Visual C++. However, the Visual Basic user interface provides access to only a subset of the capabilities found in this extremely powerful build system. For example, function exports and console subsytem applications can be built using the tools that ship with VB 5 and 6, but VB does not provide you with a way to access these features. The features are not missing, you just aren't given a way to access them.

vbAdvance gives you this access. On a per-project basis, you are able to access and configure these powerful build settings, as well as a host of other IDE convenience features. The result is that a range of capabilities that were previously unavailable are now made available to VB developers.

In addition to the build system enhancements, vbAdvance also extends the VB IDE, adding convenience features like Syntax Checking and clearing the Immediate Window when you run your project. vbAdvance is a fast, efficient tool that greatly enhances VB's build capabilities, and makes the Visual Basic IDE better and easier to use.

As a Visual Basic Add-In, vbAdvance runs while you design and compile your applications. Once your app is built, vbAdvance is no longer needed. vbAdvance adds no distributable dependencies to your projects - there is nothing to distribute because vbAdvance is only needed by the VB IDE.

All vbAdvance project settings are stored as plain text in your project's VBP file, ensuring your settings migrate easily with each project, and making it easy to set up advanced build configurations with automated build tools. These settings in no way interfere with the normal workings of VB, and you can build the same project on a machine without vbAdvance installed, without incident. (Albeit also without the advanced build features offered by vbAdvance.)

Because some of the features exposed by vbAdvance were not designed into Visual Basic, special care must be exercised when using these features. You must have a solid understanding of Windows programming to take complete advantage of this tool. At the same time, many of the features will be appreciated by even novice programmers.

* Applies to Visual Basic Professional and Enterprise Editions. Visual Basic Learning edition does not permit creation of native code executables.

Installation

vbAdvance is distributed as a single self-extracting installer EXE. Double-click the EXE to launch the installation process. You will be presented with standard installation options. Once installed, the add-in will load automatically the next time you start VB. The vbAdvance Toolbar will be floating in the center of the screen and may be repositioned and docked to your liking.

To uninstall the add-in, go to the Add/Remove Programs Control Panel, select vbAdvance, and select Uninstall. Alternatively, you may launch the uninstaller from the vbAdvance Start Menu entry.

If you are upgrading from a previous version, you may simply run the installer over your existing version. You do not need to first uninstall a previous version.

Registration

vbAdvance is now unsupported freeware. Use the following license to register the product:

BEGIN LICENSEUNSUPPORTED_FREEWARE_VERSIONUNSUPPORTED_FREEWARE_VERSIONDC4C5AED5405F6CC5405E5C733943394247C616841190441039539253EB3B5FFEND LICENSE

Copy it all (include the BEGIN and END LICENSE lines). In the Advanced Options dialog, click on the "About" button, then click on the "Register" button. Paste your registration info and click OK.

Requirements

Visual Basic Professional or Enterprise Edition version 5 or 6 / Service Pack 3 or higher.

Any Microsoft-supported Win32 operating system (server or workstation): Windows 98, ME, NT 4.0 (SP#4 or later), 2000, XP.

Native code compilations only, p-code is not supported.

For building resource-only DLLs, a copy of cvtres.exe is necessary. This utility is not redistributable and so is not installed with vbAdvance. cvtres.exe is installed with Visual C++, and is also downloadable from Microsoft's website. At the time of this writing, the file was available at the following location:

http://download.microsoft.com/download/vstudio97pro/Patch/1/WIN98/EN-US/Cvtres1.exe

The download link is also specified in Knowledge Base article Q187280.

Distribution

As a Visual Basic Add-In, vbAdvance runs while you design and compile your applications. Once your app is built, vbAdvance is no longer needed. vbAdvance has no distribution requirements - there is nothing to distribute because vbAdvance is only needed by the VB IDE.

You are expressely forbidden from distributing the vbAdvance.dll DLL, the vbAdvance.tlb Type Library or any of the vbAdvance sample code as raw source code. You are allowed to use the sample source code in your own projects, provided it is only distributed in compiled form.

Notes

The vbAdvance.tlb TypeLibrary is provided for your use. You may freely use this file in your applications. However, you do not need to distribute it with your application, nor are you allowed to. This file is required by many of the sample applications.

Because vbAdvance gives you access to features of the VB compiler and linker, and because the compiler and linker are only used when compiling to native code, these features can only be realized in native code compiled projects. P-code compilations are not supported in vbAdvance.

Because vbAdvance exposes functionality that VB was not intended to expose, we cannot provide support beyond that which the product claims to accomplish. i.e. If you wish to export a function, we will only guarantee that the export exists, we will not guarantee that it will be callable under all conditions. What you do with the export is up to you. We are merely giving you the capability.

Due to the nature of some of the techniques vbAdvance must use to control the VB build environment, there may be conflicts with other add-ins that use these same techniques. Should this occur, we will evaluate the conflict to determine if a workaround exists. Note however, that there may be nothing that can be done and that vbAdvance may not be able to coexist with some add-ins. This situation should be rare.

Command Line Builds

Command-line builds are fully supported in vbAdvance. To use the command-line feature of vbAdvance, simply set the Load Behavior for the add-in to "Command Line". Due to a bug in VB, you cannot set the add-in's Load Behavior to both "Load On Startup" and "Command Line". These two settings are mutually exclusive and you must pick one or the other. If both are selected, then "Load On Startup" is used and the add-in will not load on a command line build.

Toolbar

The vbAdvance Toolbar displays six buttons:

vbAdvance Toolbar

  1. Advanced Options - This button brings up the Advanced Options dialog which allows you to configure your project's advanced build settings, as well as the advanced IDE settings.
  2. Send Current Code Module to Text Editor - This sends the currently viewed code module to your default text editor. This allows you to use a far more powerful code editor in concert with the VB IDE.
  3. Check Syntax - This button runs the VB compiler up to, but not including, the point where a binary is built, giving you a full syntax check of your code without the hassles of having to generate a binary.
  4. Build - This button builds your binary without the dialog boxes. This is the equivalent of selecting File->Make but without the "Make Project" and "Do you want to replace it?" dialogs that pop up.
  5. Execute - This button runs your binary, if it exists.
  6. Make Resource-Only DLL - This button builds a resource-only DLL if you have a resource file in your project.

Advanced Options

The Advanced Options dialog contains five tabs:

All vbAdvance settings are found in this dialog. Press OK to accept your settings and close the dialog. Press Cancel to close the dialog without saving changes. You must save your project for any project-related settings to persist. Press About to see the About dialog. Pressing Help brings up this help file.

Build Options Tab

vbAdvance Build Options Screen

The Build Options Tab of the Advanced Options dialog contains build-specific settings:

About this post

Posted: 2018-03-10
By: vb6boy
Viewed: 1,611 times

Categories

Visual Basic 6

Attachments

vbAdvance.chm
Posted: 6/6/2019 8:59:10 AM
Size: 203,430 bytes

vbAdvance3_1.exe
Posted: 6/6/2019 8:58:48 AM
Size: 866,867 bytes


Loading Comments ...

Comments

AnonymousCoward posted this comment on 2019-06-06:

pls help me 

i cannot download vbadvancesad

na.niko.en@gmail.com

vb6boy posted this comment on 2019-06-06:

The downloads are on the other vbAdvance page on this site. But I'll add them to this post as well.

AnonymousCoward posted this comment on 2021-07-20:

I need to add vbAdvance to the docker script - the questions are:
- how to install it via command line?

- how can i set it to command line builds if i don't have VB6 UI?

viger24@tlen.pl

dwirch posted this comment on 2021-07-20:

Are you looking to actually do the compiling of source code inside the docker space?  Or are you simply trying to run compiled programs in the docker space?

For the former, I think you can use the linker (link.exe) to compile code directly, from the command line. 

For the latter, you should run the applications straight away, provided the docker instance contains all the prescribed requirements for your program.

 

AnonymousCoward posted this comment on 2021-08-09:

I am compiling my sources inside the docker space, but i miss vbAdvance there as the versioning is not properly applied. The section of .vbp file [vbAdvance] is not taken into account.

I want to either:
- be able to launch and install vbAdvance3_1.exe without UI (from command line)
- have a list of changes vbAdvance3_1.exe does to registry and VB6 directory during the installation step, and how to modify the Load behavior via command line (normally vbAdvance asks us to start VB6 go Add-Ins -> Add-In Manager -> select vbAdvance and change the checkboxes to "Command Line" - i cannot do that in docker :D But i can copy the file that is modified during that procedure :)

I'm currently trying to get all that information with SysInternals promon, but any direct help from the author would be apreciated! :)

AnonymousCoward posted this comment on 2021-08-09:

Ok, here's a little update on the situation: I managed to install vbAdvance inside a docker container by tracing all the changes done to the disk and registry and applying the same stuff during docker container creation. I did that by having a virtual machine of win10 with installed promon and then i just launched vbAdvance installer.

The changes needed are the following:

mkdir "C:\Program Files (x86)\vbAdvance"
xcopy vbAdvance "C:\Program Files (x86)\vbAdvance\" /y /e
REGEDIT /S HKCU_Software_vbAdvance.reg
REGEDIT /S HKCU_Software_YDS.reg
REGEDIT /S HKCU_Software_VB6Addins.reg
REGEDIT /S HKCR_CLSID_8025AB78-F049-4E23-8C71-662DF4BFE837.reg
REGEDIT /S HKCR_CLSID_9ED25368-E8CE-4A4D-AE71-15EBF7EE065B.reg
REGEDIT /S HKCR_vbAdvance.Connect.reg
REGEDIT /S HKCR_CLSID_99152BB6-CC39-4F16-BB40-C155B4EDE451.reg

You must be logged in to make a comment.