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
Recommended Version¶
AutoCAD 2024 or later — Active support, modern security
AutoCAD LT — Insufficient (no LISP support)
Installation Steps¶
Download from Autodesk Account or subscription
Install with default options
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 |
|---|---|---|
|
0 or 1 |
Control LSP loading |
|
Your dev folders |
Whitelist directories |
|
1 |
Enable Visual LISP IDE |
|
(command) |
Launch Visual LISP IDE |
Visual Studio Code¶
Required for: All text-based files (.LSP, .DCL, .INI, .REG, .INF)
Installation¶
Download from https://code.visualstudio.com/
Install with “Add to PATH” option
Recommended Extensions¶
Extension |
Publisher |
Purpose |
|---|---|---|
AutoLISP |
Autodesk |
LSP/DCL syntax, debugging |
AutoCAD AutoLISP Extension |
Autodesk |
Full LISP IDE integration |
XML Tools |
Josh Johnson |
CUI file editing |
Hex Editor |
Microsoft |
Binary file inspection |
PDF Preview |
Analytic Signal |
View PDF without leaving VS Code |
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¶
Download Visual Studio 2022 Community (free)
Select workloads:
Desktop development with C++
Windows SDK (latest)
Individual components:
C++ MFC for latest build tools
C++ ATL for latest build tools
ObjectARX SDK Setup¶
Download ObjectARX SDK from Autodesk Developer Network
Extract to
C:\ObjectARX\2024\(version-specific)Set environment variables:
# Add to system environment
[Environment]::SetEnvironmentVariable("ARXSDK", "C:\ObjectARX\2024", "User")
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¶
Download from https://www.7-zip.org/
Install to default location
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¶
Download from https://git-scm.com/
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 |
|
SSH to Proxmox |
|
NAS Container |
|
Windows Test VMs (Updated Jan 29, 2026)¶
VM |
Name |
Hostname |
SSH Alias |
Purpose |
|---|---|---|---|---|
103 |
XP-LEGACY |
|
|
Original GSCI workstation (2008), InstallShield 5, AutoCAD 2000 |
104 |
XP-TEST |
|
|
Fresh XP SP3 test environment |
106 |
Vista-TEST |
|
|
Windows Vista test environment |
107 |
Win7-TEST |
|
|
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"
Recommended VM Configuration¶
Component |
Specification |
|---|---|
VM Software |
VMware Workstation or VirtualBox |
Guest OS |
Windows XP SP3 (32-bit) |
RAM |
2-4 GB |
Storage |
40 GB (dynamic) |
Network |
Host-only (security) |
Windows XP VM Setup¶
Obtain Windows XP
Use existing license
MSDN/Visual Studio subscription archive
Note: XP is end-of-life; use isolated VM only
Install Guest Additions
VMware Tools or VirtualBox Guest Additions
Enables shared folders, clipboard
Configure Shared Folder
Host: C:\Dev\ConstructiVision Guest: \\VBOXSVR\shared or Z:\
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 |
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 |
|
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¶
Match FAS modules to LSP source - v3.60 includes many
.lspsource files alongside the VLXCompare function names - Extract strings from FAS, match to source files
Runtime testing - Load VLX in AutoCAD, test functions to understand behavior
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.
Recommended Tools (2026)¶
Tool |
License |
Best For |
|---|---|---|
WiX Toolset 4+ |
Open Source |
MSI packages, enterprise deployment |
Inno Setup |
Open Source |
Simple EXE installers |
NSIS |
Open Source |
Compact installers, plugins |
Advanced Installer |
Commercial |
GUI-based, MSI/MSIX |
InstallShield |
Commercial |
Enterprise, legacy compatibility |
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.
Visual Studio 2022+ (Recommended)¶
Open ARX as binary:
File → Open → File → Select
.arxView as hex or use Disassembly window
Use dumpbin for exports:
# From Developer PowerShell for VS 2022 dumpbin /exports CSV.ARX dumpbin /imports CSV.ARX dumpbin /headers CSV.ARX
Dependency Walker alternative:
# Modern replacement: Dependencies (lucasg) # https://github.com/lucasg/Dependencies Dependencies.exe CSV.ARX
Key Information to Extract¶
Command |
Shows |
|---|---|
|
Exported functions (entry points) |
|
DLLs and functions it calls |
|
PE header, architecture (x86/x64) |
|
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¶
AutoCAD (any supported version)
Text editor (VS Code recommended)
Full Setup¶
AutoCAD with Visual LISP IDE
VS Code with Autodesk AutoLISP extension
Configure debugger attachment
VS Code AutoLISP Debugging¶
Install Autodesk AutoLISP extension
Create launch configuration:
// .vscode/launch.json
{
"version": "0.2.0",
"configurations": [
{
"type": "attachlisp",
"request": "attach",
"name": "Attach to AutoCAD",
"attributes": {
"process": "acad"
}
}
]
}
Start AutoCAD
In VS Code: Run → Start Debugging
Set breakpoints, step through code
DCL Dialog Development¶
Tools¶
AutoCAD (required to test)
VS Code with AutoLISP extension (syntax highlighting)
Workflow¶
Edit
.dclfile in VS CodeLoad in AutoCAD:
(setq dcl_id (load_dialog "mydialog.dcl"))
(new_dialog "dialog_name" dcl_id)
(start_dialog)
(unload_dialog dcl_id)
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¶
Create new C++ DLL project
Configure for x64 (AutoCAD 2024+ is 64-bit only)
Add ObjectARX include/lib paths
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¶
Set AutoCAD as debug executable
Build ARX in Debug mode
F5 to launch AutoCAD
Load ARX:
(arxload "path/to/plugin.arx")Breakpoints will trigger
Plot Style Development¶
CTB (Color-Based)¶
AutoCAD → Plot Style Manager
Create/modify CTB
Test with
PLOTcommand preview
STB (Named)¶
Drawing must use named plot styles
Create via Plot Style Manager
Assign styles to objects/layers
Environment Variables Reference¶
System Variables¶
Variable |
Value |
Purpose |
|---|---|---|
|
|
ARX SDK location |
|
|
AutoCAD installation |
AutoCAD System Variables¶
Variable |
Command |
Development Value |
|---|---|---|
|
|
0 (dev) / 1 (prod) |
|
|
Semicolon-separated paths |
|
|
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)thenVLIDE
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)
stringsutility (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