Developer Environment Setup

Recommendations for setting up a development environment to create, modify, and test ConstructiVision file types.

Note

This guide covers both modern development (Windows 10/11) and legacy compatibility (Windows XP VM) environments. Some tools are no longer available or supported—alternatives and workarounds are provided.


Quick Start: Minimum Viable Environment

For basic ConstructiVision development in 2026:

Component

Recommended

Purpose

OS

Windows 11

Primary development

AutoCAD

AutoCAD 2024+

Run and test LISP code

Editor

VS Code + AutoLISP Extension

Edit LSP, DCL, text files

Archive Tool

7-Zip

Extract legacy installers

VM Software

VMware/VirtualBox

Legacy compatibility testing

For installer and ARX work:

Component

Recommended

Purpose

IDE

Visual Studio 2022

ARX development, binary inspection

Extractor

Unshield

InstallShield CAB extraction

Installer Builder

WiX Toolset 4+ or Inno Setup

Create modern installers

Binary Analysis

dumpbin, Dependencies, Ghidra

Inspect ARX exports/imports


Primary Development Environment (Windows 10/11)

AutoCAD Installation

Required for: .LSP, .DCL, .FAS, .VLX, .ARX, .DWG, .MNU, .CUI

Installation Steps

  1. Download from Autodesk Account or subscription

  2. Install with default options

  3. Configure trusted paths for development

Post-Installation Configuration

;; Enable LISP loading (required for unsigned code)
(setvar "SECURELOAD" 0)  ; Development only - allows all LSP

;; Or use trusted paths (recommended)
(setvar "SECURELOAD" 1)  ; Warn for untrusted
(setvar "TRUSTEDPATHS" "C:\\Dev\\ConstructiVision;C:\\Projects")

Security Warning: Set SECURELOAD to 1 or 2 in production environments.

Essential System Variables

Variable

Development Value

Purpose

SECURELOAD

0 or 1

Control LSP loading

TRUSTEDPATHS

Your dev folders

Whitelist directories

LISPSYS

1

Enable Visual LISP IDE

VLIDE

(command)

Launch Visual LISP IDE


Visual Studio Code

Required for: All text-based files (.LSP, .DCL, .INI, .REG, .INF)

Installation

  1. Download from https://code.visualstudio.com/

  2. Install with “Add to PATH” option

Install via Command Line

code --install-extension autodesk.autolispcad
code --install-extension redhat.vscode-xml
code --install-extension ms-vscode.hexeditor

Workspace Settings for ConstructiVision

Create .vscode/settings.json:

{
  "files.associations": {
    "*.lsp": "autolisp",
    "*.dcl": "autolisp",
    "*.fas": "autolisp",
    "*.mnl": "autolisp",
    "*.scr": "plaintext",
    "*.prj": "ini",
    "*.prv": "ini"
  },
  "editor.tabSize": 2,
  "files.encoding": "windows1252",
  "files.eol": "\r\n"
}

Visual Studio (for ARX Development)

Required for: .ARX, .DLL, .DBX (ObjectARX plugins)

Version Requirements

AutoCAD Version

Visual Studio

Platform Toolset

2024-2026

VS 2022

v143

2021-2023

VS 2019

v142

2018-2020

VS 2017

v141

2013-2017

VS 2015

v140

Legacy (R14-2012)

VS 2008/2010

v90/v100

Installation Steps

  1. Download Visual Studio 2022 Community (free)

  2. Select workloads:

    • Desktop development with C++

    • Windows SDK (latest)

  3. Individual components:

    • C++ MFC for latest build tools

    • C++ ATL for latest build tools

ObjectARX SDK Setup

  1. Download ObjectARX SDK from Autodesk Developer Network

  2. Extract to C:\ObjectARX\2024\ (version-specific)

  3. Set environment variables:

# Add to system environment
[Environment]::SetEnvironmentVariable("ARXSDK", "C:\ObjectARX\2024", "User")
  1. Create project with ARX Wizard or manually configure:

<!-- .vcxproj additions -->
<AdditionalIncludeDirectories>$(ARXSDK)\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalLibraryDirectories>$(ARXSDK)\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>

Critical: ARX files are version-locked. An ARX built for AutoCAD 2024 will not load in 2023 or 2025.


7-Zip

Required for: .CAB, .ZIP, .EX_ extraction

Installation

  1. Download from https://www.7-zip.org/

  2. Install to default location

  3. Enable shell integration

Command-Line Usage

# Add to PATH
$env:Path += ";C:\Program Files\7-Zip"

# Extract InstallShield CAB
7z x data1.cab -oextracted\

# Extract compressed EX_ file
7z x setup.ex_ -oextracted\

# List archive contents
7z l archive.zip

Unshield (InstallShield Extractor)

Required for: Legacy InstallShield 5.x/6.x .CAB files

Installation (Windows)

# Via Chocolatey
choco install unshield

# Or download from GitHub
# https://github.com/twogood/unshield/releases

Usage

# List contents of InstallShield CAB
unshield l data1.cab

# Extract all files
unshield x data1.cab

# Extract to specific directory
unshield -d C:\extracted x data1.cab

Git

Required for: Version control, collaboration

Installation

  1. Download from https://git-scm.com/

  2. Install with:

    • VS Code as default editor

    • Git from command line and 3rd-party software

    • Checkout Windows-style, commit Unix-style line endings

Configuration

git config --global user.name "Your Name"
git config --global user.email "your@email.com"
git config --global core.autocrlf true
git config --global init.defaultBranch main

Legacy Development Environment (Virtual Machine)

Some ConstructiVision tools require deprecated software that won’t run on modern Windows.

When You Need a Legacy VM

Task

Requires Legacy VM

Run original v3.60 installer

Yes

Create/edit HLP files

Yes

Test Shockwave content

Yes

Run 16-bit executables

Yes

Run InstallShield 5.x compiler

Yes

Edit LSP/DCL files

No

Build ARX for 2024

No

Extract CAB files

No

Proxmox VM Infrastructure (Updated Jan 29, 2026)

The legacy development environment now runs on a Proxmox VE server with full SSH access for remote command execution.

Connection Details

Component

Value

Proxmox Host

<PROXMOX_HOST>

SSH to Proxmox

ssh root@<PROXMOX_HOST>

NAS Container

<NAS_IP> (LXC 100, Samba)

Windows Test VMs (Updated Jan 29, 2026)

VM

Name

Hostname

SSH Alias

Purpose

103

XP-LEGACY

XP-LEGACY

ssh xp-103

Original GSCI workstation (2008), InstallShield 5, AutoCAD 2000

104

XP-TEST

XP-TEST

ssh xp-104

Fresh XP SP3 test environment

106

Vista-TEST

Vista-TEST

ssh vista-106

Windows Vista test environment

107

Win7-TEST

Win7-TEST

ssh win7-107

Windows 7 test environment

SSH Configuration

Add to ~/.ssh/config:

Host xp-103
    HostName XP-LEGACY
    User Administrator

Host xp-104
    HostName <VM_IP>
    User Administrator

Host vista-106
    HostName <VM_IP>
    User Administrator

Host win7-107
    HostName <VM_IP>
    User Administrator

SSH Server: Bitvise SSH Server (Personal Edition) - free for personal use, supports public key authentication.

Note: All 4 Windows VMs have Bitvise SSH with public key auth and auto-login to Administrator. XP VMs support RSA keys only (no ed25519).

VM Security Hardening (Applied Jan 29, 2026)

Vista-TEST (106) and Win7-TEST (107) have been hardened:

Security Measure

Vista

Win7

Windows Firewall (all profiles)

✅ ON

✅ ON

Windows Defender

✅ Running

✅ Running

Panda Antivirus

✅ Installed

✅ Installed

SMBv1 Disabled

Remote Registry Disabled

SSDP/UPnP Disabled

Autorun/Autoplay Disabled

DEP (AlwaysOn)

Guest Account Disabled

LegacyUpdate.net Patches Applied:

OS

Critical KBs

Vista

KB4012598 (MS17-010), KB4493730/KB4474419 (SHA-2), KB4054518 (.NET 4.7.1), KB3205401 (IE9)

Win7

KB4012212 (MS17-010), KB4490628/KB4474419 (SHA-2), KB4536952/KB5017361/KB5022338 (ESU Rollups)

See 06-testing-validation.md for full details.

Example Remote Commands

# Get system info
ssh xp-103 "systeminfo"

# List files
ssh xp-103 "dir C:\\Program Files"

# Check InstallShield installation
ssh xp-103 "dir \"C:\\Program Files\\InstallShield\""

# Run InstallShield compiler (example)
ssh xp-103 "\"C:\\Program Files\\InstallShield\\bin\\compile.exe\" setup.rul"

Windows XP VM Setup

  1. Obtain Windows XP

    • Use existing license

    • MSDN/Visual Studio subscription archive

    • Note: XP is end-of-life; use isolated VM only

  2. Install Guest Additions

    • VMware Tools or VirtualBox Guest Additions

    • Enables shared folders, clipboard

  3. Configure Shared Folder

    Host: C:\Dev\ConstructiVision
    Guest: \\VBOXSVR\shared or Z:\
    
  4. Disable Network (security)

    • Set adapter to Host-only

    • Or disconnect entirely

Legacy Software to Install in VM

AutoCAD R14 / 2000 / 2002

  • For testing legacy LISP compatibility

  • Source: Original installation media

Help Workshop (HTML Help SDK)

Creates: .HLP, .CNT (WinHelp files)

Download: Microsoft HTML Help Workshop
Note: WinHelp compiler (hcrtf.exe) was separate
      and is very difficult to find legally

InstallShield 5.x / 6.x

Creates: .INS, .CAB (InstallShield format)

  • Professional Edition required for full features

  • No longer sold; archived licenses only

  • Alternative: Analyze with Unshield, rebuild with modern tools

Visual Studio 6.0 / 2008

Creates: .DLL, legacy .ARX

  • For maintaining truly legacy plugins

  • C++ MFC required

Macromedia Director MX

Creates: .DCR (Shockwave)

  • Last version: Director 12 (2013)

  • Product discontinued

  • Content effectively orphaned


Installer Analysis & Creation

Decompiling Legacy Installers

Purpose: Understand what v3.60/v7.0 installers actually do—registry entries, file placements, dependencies.

InstallShield Decompilation Tools

Tool

Purpose

Source

isDcc v1.22

Decompile .ins.rul source

Andrew de Quincey (1998)

Unshield

Extract files from IS CABs

https://github.com/twogood/unshield

InstallShield Cabinet File Viewer

Inspect CAB structure

Legacy (hard to find)

Universal Extractor 2

Multi-format extraction

https://github.com/Bioruebe/UniExtract2

Note

ConstructiVision v3.60 Analysis Complete

The v3.60 installer (setup.ins) has already been fully decompiled using isDcc v1.22, producing 3,707 lines of InstallScript source code. See the Installer Sequence Analysis for complete documentation.

isDcc Usage (InstallScript Decompiler)

isDcc decompiles InstallShield 5.x/6.x compiled scripts (.ins) back to readable InstallScript (.rul):

# Basic decompilation
isdcc setup.ins

# Output: setup.rul (InstallScript source code)
# Note: Variable/function names are generic (function100, function101, etc.)
#       Logic structure is preserved

What isDcc produces:

  • Function definitions with generic names

  • Control flow (if/while/switch)

  • API calls (registry, file operations)

  • String table references

Limitations:

  • Original variable names lost

  • Comments not preserved

  • Requires manual analysis to understand intent


Analyzing VLX/FAS Files

Purpose: Understand compiled Visual LISP applications without source code.

Warning

VLX/FAS files are protected bytecode and cannot be fully decompiled.

Unlike InstallShield .ins files, Visual LISP compiled files (.fas, .vlx) use encrypted bytecode with no publicly available decompiler. Analysis is limited to metadata extraction and string inspection.

What CAN Be Analyzed

Method

Extracts

Tool

Header parsing

Format version, protection flags

analyze-vlx.ps1

LOAD directive

List of embedded FAS modules

String extraction

String extraction

Function names, error messages, paths

PowerShell/strings

Runtime inspection

Loaded function signatures

AutoCAD VLISP

VLX Analysis Script

Use the existing scripts/analyze-vlx.ps1:

.\scripts\analyze-vlx.ps1 -VlxPath "src\x86\v3_60\v3.60\Csv.VLX"

Output:

  • File size and header signature (VRTLIB-1)

  • Protection mode (:protected . T)

  • List of 109 embedded FAS modules

  • Sample readable strings

What CANNOT Be Recovered

  • Original LISP source code

  • Comments and documentation

  • Variable names (all compiled to bytecode)

  • Exact logic flow (without reverse engineering bytecode format)

Best Strategy for VLX Analysis

  1. Match FAS modules to LSP source - v3.60 includes many .lsp source files alongside the VLX

  2. Compare function names - Extract strings from FAS, match to source files

  3. Runtime testing - Load VLX in AutoCAD, test functions to understand behavior

  4. Cross-reference v7.0 - v7.0 includes more source files that may illuminate v3.60 logic

Note

ConstructiVision VLX Analysis Complete

The v3.60 CSV.VLX (1.05 MB, 109 FAS modules) has been analyzed. Module list and structure documented in csv-vlx-binary-notes.md. Full decompilation not possible due to bytecode protection.

Analyzing InstallShield Scripts

The v3.60 installer uses InstallShield 5.x with compiled .ins scripts:

# Extract what you can from setup.ins
strings setup.ins > setup_strings.txt

# Look for registry keys, paths, file operations
Select-String -Path setup_strings.txt -Pattern "HKEY_|\.dll|\.exe|\\Program Files"

Registry Analysis (WINCSS.REG)

v3.60 includes WINCSS.REG in binary CREG format (not standard .REG):

# Cannot use regedit directly - use hex editor
# Look for patterns: registry paths are null-terminated strings

# Extract readable strings
strings WINCSS.REG > wincss_strings.txt

InstallShield Log Analysis

If you can run the installer (in VM), enable logging:

setup.exe /v"/l*v install.log"

Creating Modern Installers

Purpose: Package ConstructiVision for modern deployment without legacy InstallShield.

WiX Toolset Setup

# Install WiX via .NET tool
dotnet tool install --global wix

# Or via Visual Studio extension
# Extensions → Manage Extensions → Search "WiX"

Basic WiX project structure:

<!-- Product.wxs -->
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
  <Package Name="ConstructiVision"
           Version="8.0.0"
           Manufacturer="Your Company"
           UpgradeCode="GUID-HERE">

    <MajorUpgrade DowngradeErrorMessage="Newer version installed." />

    <Feature Id="Main">
      <ComponentGroupRef Id="ProductComponents" />
    </Feature>
  </Package>
</Wix>

Inno Setup (Simpler Alternative)

# Download from https://jrsoftware.org/isinfo.php
# Or via Chocolatey
choco install innosetup

Basic Inno Setup script:

[Setup]
AppName=ConstructiVision
AppVersion=8.0
DefaultDirName={autopf}\ConstructiVision
OutputBaseFilename=ConstructiVision_Setup

[Files]
Source: "dist\*"; DestDir: "{app}"; Flags: recursesubdirs

[Registry]
Root: HKCU; Subkey: "Software\ConstructiVision"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}"

What to Capture from Legacy Installer

Before building a new installer, document what the original did:

  • Files installed and their destinations

  • Registry entries created

  • Environment variables set

  • AutoCAD profile modifications

  • File associations registered

  • Start menu shortcuts

  • Uninstaller behavior


ARX Binary Analysis

Inspecting Existing ARX Files

Purpose: Understand legacy ARX without source code—exports, dependencies, embedded resources.

Key Information to Extract

Command

Shows

dumpbin /exports

Exported functions (entry points)

dumpbin /imports

DLLs and functions it calls

dumpbin /headers

PE header, architecture (x86/x64)

dumpbin /dependents

Required DLLs

Example Analysis

# Check if ARX is 32-bit or 64-bit
dumpbin /headers CSV.ARX | Select-String "machine"
# "machine (x64)" = 64-bit
# "machine (x86)" = 32-bit

# List ObjectARX functions used
dumpbin /imports CSV.ARX | Select-String "acad|acdb|acge"

IDA Free / Ghidra (Advanced)

For deep reverse engineering of ARX logic:

Tool

License

Purpose

IDA Free

Freeware

Disassembly, basic decompilation

Ghidra

Open Source (NSA)

Full decompilation to C-like code

x64dbg

Open Source

Runtime debugging

# Install Ghidra
choco install ghidra

# Open ARX file → Auto-analyze → View decompiled functions

Caution: Reverse engineering may have legal implications. Use only for:

  • Software you own/have rights to

  • Interoperability purposes (often protected)

  • Security research

Extracting Resources from ARX

ARX files may contain embedded resources (dialogs, strings, icons):

# Use Resource Hacker
choco install resourcehacker

# Or Visual Studio: Open ARX → View → Resource View

Tool-Specific Setup Guides

AutoLISP Development

Minimal Setup

  1. AutoCAD (any supported version)

  2. Text editor (VS Code recommended)

Full Setup

  1. AutoCAD with Visual LISP IDE

  2. VS Code with Autodesk AutoLISP extension

  3. Configure debugger attachment

VS Code AutoLISP Debugging

  1. Install Autodesk AutoLISP extension

  2. Create launch configuration:

// .vscode/launch.json
{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "attachlisp",
      "request": "attach",
      "name": "Attach to AutoCAD",
      "attributes": {
        "process": "acad"
      }
    }
  ]
}
  1. Start AutoCAD

  2. In VS Code: Run → Start Debugging

  3. Set breakpoints, step through code


DCL Dialog Development

Tools

  • AutoCAD (required to test)

  • VS Code with AutoLISP extension (syntax highlighting)

Workflow

  1. Edit .dcl file in VS Code

  2. Load in AutoCAD:

(setq dcl_id (load_dialog "mydialog.dcl"))
(new_dialog "dialog_name" dcl_id)
(start_dialog)
(unload_dialog dcl_id)
  1. Iterate: Edit → Reload → Test

Tip: DCL has no live preview. Create a test harness LSP for rapid iteration.


ARX Plugin Development

Prerequisites

  • Visual Studio 2022 with C++ workload

  • ObjectARX SDK (matching AutoCAD version)

  • AutoCAD installed

Project Setup

  1. Create new C++ DLL project

  2. Configure for x64 (AutoCAD 2024+ is 64-bit only)

  3. Add ObjectARX include/lib paths

  4. Link against: acad.lib, acdb24.lib, acge24.lib

Build Configuration

<!-- Release build for distribution -->
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<Optimization>Full</Optimization>

<!-- Debug build for development -->
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<GenerateDebugInformation>true</GenerateDebugInformation>

Debugging ARX

  1. Set AutoCAD as debug executable

  2. Build ARX in Debug mode

  3. F5 to launch AutoCAD

  4. Load ARX: (arxload "path/to/plugin.arx")

  5. Breakpoints will trigger



Plot Style Development

CTB (Color-Based)

  1. AutoCAD → Plot Style Manager

  2. Create/modify CTB

  3. Test with PLOT command preview

STB (Named)

  1. Drawing must use named plot styles

  2. Create via Plot Style Manager

  3. Assign styles to objects/layers


Environment Variables Reference

System Variables

Variable

Value

Purpose

ARXSDK

C:\ObjectARX\2024

ARX SDK location

ACAD

C:\Program Files\Autodesk\AutoCAD 2024

AutoCAD installation

AutoCAD System Variables

Variable

Command

Development Value

SECURELOAD

SECURELOAD

0 (dev) / 1 (prod)

TRUSTEDPATHS

TRUSTEDPATHS

Semicolon-separated paths

ACADLSPASDOC

ACADLSPASDOC

1 (load acaddoc.lsp per doc)


Directory Structure Recommendation

C:\Dev\ConstructiVision\
├── docs\                    # Documentation (this repo)
├── src\
│   ├── lisp\               # LSP source files
│   │   ├── core\           # Core modules
│   │   ├── dialogs\        # DCL files
│   │   └── utils\          # Utility functions
│   ├── arx\                # C++ ARX projects
│   │   └── CSV\            # CSV.ARX source
│   └── installer\          # Installer scripts
├── build\
│   ├── fas\                # Compiled FAS files
│   ├── vlx\                # Packaged VLX files
│   └── arx\                # Compiled ARX (per version)
├── test\
│   ├── drawings\           # Test DWG files
│   └── scripts\            # Test SCR files
└── dist\                   # Distribution packages

Troubleshooting

“Cannot load ARX” Error

  • Cause: ARX version mismatch

  • Solution: Rebuild ARX for current AutoCAD version

“LISP file not trusted” Warning

  • Cause: SECURELOAD is enabled

  • Solution: Add path to TRUSTEDPATHS or set SECURELOAD 0 (dev only)

Visual LISP IDE Won’t Start

  • Cause: LISPSYS variable

  • Solution: (setvar "LISPSYS" 1) then VLIDE

Cannot Extract InstallShield CAB

  • Cause: Not standard CAB format

  • Solution: Use Unshield instead of 7-Zip

DCL Dialog Doesn’t Appear

  • Cause: Syntax error in DCL

  • Solution: Check AutoCAD command line for error message

HLP Files Don’t Open

  • Cause: WinHelp not in Windows 10/11

  • Solution: Use VM with Windows XP, or extract content with third-party tool


Summary: What You Need

For LISP Development (Most Common)

  • AutoCAD 2024+

  • VS Code + AutoLISP Extension

  • 7-Zip

For Full ConstructiVision Development

  • Everything above, plus:

  • Visual Studio 2022 (for ARX)

  • ObjectARX SDK

  • Git

For Legacy Compatibility Testing

  • Everything above, plus:

  • VMware or VirtualBox

  • Windows XP VM

  • Legacy AutoCAD in VM

For Installer Archaeology

  • 7-Zip

  • Unshield

  • isDcc v1.22 (InstallScript decompiler)

  • Universal Extractor 2

  • Hex editor (VS Code extension)

  • strings utility (or PowerShell equivalent)

For VLX/FAS Analysis (Limited)

  • analyze-vlx.ps1 (header/module extraction)

  • AutoCAD with Visual LISP (runtime inspection)

  • Hex editor (string extraction)

  • No decompiler available (bytecode is protected)

For Creating Modern Installers

  • WiX Toolset 4+ (MSI packages)

  • Inno Setup (simple EXE installers)

  • Visual Studio (for MSI projects)

For ARX Reverse Engineering

  • Visual Studio 2022 (dumpbin, hex view)

  • Dependencies (DLL analysis)

  • Resource Hacker (embedded resources)

  • Ghidra or IDA Free (deep analysis)


Status: Complete | Updated: 2026-01-21