There is no standalone, official product named “Borland DLL Explorer.” Instead, this term typically refers to using general “DLL Explorer” utilities—such as third-party PE viewers, dependency scanners, or Borland’s own bundled command-line utilities—to inspect, reverse-engineer, or troubleshoot Dynamic Link Libraries (DLLs) compiled with legacy development tools like Borland C++ Builder or Borland Delphi.
Developers working on legacy software frequently use these utilities to map out exported functions and avoid the software-breaking phenomenon known as DLL Hell. Core Concepts of Borland DLLs
To inspect a Borland-compiled DLL, you must understand how Borland’s infrastructure differed from standard Microsoft-centric environments:
Object Module Format (OMF): Borland compilers traditionally generated .obj and .lib files using Intel’s OMF format, whereas Microsoft used COFF. Because of this, standard Windows tools sometimes struggle to link directly to Borland binaries without a conversion step.
Name Mangling (Decorations): Borland C++ heavily “mangles” or decorates exported function names (e.g., adding type details to the name) to support function overloading.
The VCL Bottleneck: If a Borland DLL was built using the Visual Component Library (VCL), it often requires massive runtime package dependencies (like vclxx.bpl or rtlxx.bpl), making it difficult to deploy stand-alone. Essential Utilities for “Exploring” Borland DLLs
When developers search for a tool to act as a “DLL Explorer” for Borland binaries, they rely on a specific stack of utilities: 1. Borland TDUMP (The Built-in Explorer)
Borland included a powerful command-line structural inspector named TDUMP.EXE with its compilers.
Purpose: It extracts the header structure of an executable or library.
How to use it: Running tdump -ee targetfile.dll from the command prompt lists every exported function name exactly as the operating system sees it. 2. Borland IMPLIB (The Export Bridge)
When you need to use a third-party DLL inside an older Borland project, you cannot use Microsoft-style .lib files directly.
Purpose: Generates a Borland-compatible OMF import library from a target DLL. Syntax: IMPLIB -a output_name.lib target_name.dll. 3. Third-Party “DLL Explorer” Apps & Dependency Walkers
Tools like the classic Dependency Walker (depends.exe), modern Dependencies (GitHub), or dedicated PE Explorers serve as the visual UI for investigating these files. They expose:
The Export Table: List of functions the Borland DLL makes available to other applications.
The Import Table: List of functions or .bpl packages the Borland DLL needs to steal from the system to run. Step-by-Step: How to Explore a Borland DLL
If you have a mystery DLL and you suspect it was built using legacy Borland software, use this diagnostic workflow:
[Target DLL] ──> Run PE Decompiler/Explorer ──> Check File Header │ ┌─────────────────────────────────────────────┴──────────────────────────────────────────┐ ▼ ▼ [Borland Signature Found] [Standard COFF Format] • Check Exports via TDUMP • Check Microsoft Dependencies • Map Mangled Function Names • Generate OMF via IMPLIB for Borland Use • Identify Missing VCL Packages (.bpl)
Verify Binary Origin: Load the file into a PE header explorer (like PEview or CFF Explorer). Look for compiler signatures or references to Borland, Delphi, or runtime packages like rtl.bpl.
Expose the Exports: Open the file in a visual DLL Explorer tool to view the exported section. If the names look like @MyFunction$qv, the DLL was built using Borland C++ name mangling. If they are clean, they used extern “C” declaration modifiers.
Trace Missing Dependencies: If a legacy application throws an error when trying to call your Borland DLL, use an explorer tool to look for missing dependencies. It is highly likely the system is missing specific Borland database engine components (BDE) or specific runtime .dll layouts.
If you are trying to resolve a specific issue, please share:
Are you trying to extract/call functions from a Borland DLL using a newer language (like C# or Python)?
Do you have an error message (e.g., “Access Violation” or “Function Not Found”)? Is this for an existing legacy system migration?
How to import external dll library to Borland C++ 6? – Stack Overflow
Leave a Reply