PBShell provides the following functions:
|•||Compile source code or resource script|
|•||Optional external pre/post compilation processing|
|•||Compile and Debug|
|•||Compile and Run|
with the following special features:
|•||Go to error position in source code via DDE command back to the editor.|
|•||Automatic determination of compiler and include paths via registry, path and INI files.|
|•||Automatic selection of PBWIN.EXE, PBCC.EXE, PBDLL.EXE or RC.EXE/PBRES.EXE compilers.|
|•||Compilation of multiple source file projects with a primary source file or single source file programs.|
|•||Integrated invocation of the PB IDE from within UltraEdit for compiled code debugging.|
|•||Setup once and forever for all projects using UltraEdit path/file name variables.|
|•||No complicated scripts or macros to write, and no compromises to make.|
This version has been tested with UltraEdit 15 and PB/Win 9 and compiled with PB/Win v9.02. Previous versions have been used successfully with various versions of UltraEdit back to version 12 and with PB/Win 8 and all updates.
The program is supplied with full source code in case anyone wants to try to adapt it for other editors, or wants to use any of the functionality it provides for other purposes. The source code is compilable with PB/Win 8.x or 9.x.
I used José Roca's SED editor before switching to UltraEdit and got very fond of it - SED saw me through the first year of programming with PB - but it was time to switch to a more fully-featured editor, albeit one that wasn't designed specifically for PB. PBShell was born out of my unwillingness to give up the convenient integration of SED with the PB compilers. SED's "compile and run" features were the model of functionality for PBShell but, with the exception of the "compile and debug" feature, and the RC.EXE invocation code, PBShell was written from scratch.
In some aspects, PBShell exceeds the functionality of SED, especially in trying to provide support for all compiler versions, multiple compiler versions, and in attempting "intelligent" determination of the directory paths to support the widest possible modes of use and installation locations - you should not have to "tell" PBShell where the compiler(s) are located, for example. Additionally, PBShell provides popup dialogs to report progress and results. The new pre and post processing support in PBShell is not compatible with similar support in SED and, unlike SED, PBShell has no pre or post processors "built-in".
An attempt has been made to include at least outline support for all PB versions (except PB/DOS) past and present, including PB/Win 7.x, 8.x & 9.x, PB/CC 2.x, 3.x, 4.x & 5.x, and PB/DLL 6.x, insofar as I was able to glean information from other people's code. I am reasonably confident of all aspects of the support for PB/Win 7.x, 8.x & 9.x and for PB/CC 3.x, 4.x & 5.x but only partially confident in support for PB/DLL 6.x and PB/CC 2.x. In particular, it is assumed that the log file produced by those earlier versions can be parsed in the same general way as the log file for PB/Win 7/8/9 and PB/CC 3/4/5. PBShell has been tested only with PB/Win 8.x and 9.x.
Grateful acknowledgements are made to contributions by the PB forums community, especially José Roca (mechanism for invoking the PB IDE for the "compile and debug" function, and other snippets), Michael Mattias (registry & PBWIN.INI access) and Florent Heyworth (use of DDEML functions).