Windows Runtime DLL Dependencies

July 18, 2026 ยท View on GitHub

This page documents the DLL dependency closure for the Windows build of nuBASIC. It is intended as a packaging checklist for MSI releases and as a support reference when an installed executable does not start on a clean Windows 10/11 machine.

The list below was checked from the Release binaries with:

 dumpbin /DEPENDENTS <binary>

Packaged DLLs

These DLLs are not guaranteed to exist on every end-user machine and should be installed next to the nuBASIC executables in bin.

DLLSourceExpected MSI locationWhy it matters
ffi-8.dll or ffi.dllvcpkg libffi:x64-windowsCore\binRequired by native DLL calls. Because the interpreter links to libffi, missing this DLL can prevent nubasic.exe, nubasicdebug.exe, nubasicgdi.exe, and NuBasicIDE.exe from starting.
vcruntime140.dllMicrosoft Visual C++ Redistributable / InstallRequiredSystemLibrariesCore\binMSVC C runtime.
vcruntime140_1.dllMicrosoft Visual C++ Redistributable / InstallRequiredSystemLibrariesCore\binMSVC C++ exception/runtime support.
msvcp140.dllMicrosoft Visual C++ Redistributable / InstallRequiredSystemLibrariesCore\binMSVC C++ standard library.
msvcp140_1.dllMicrosoft Visual C++ Redistributable / InstallRequiredSystemLibrariesCore\binAdditional MSVC C++ runtime support.
msvcp140_2.dllMicrosoft Visual C++ Redistributable / InstallRequiredSystemLibrariesCore\binAdditional MSVC C++ runtime support.
msvcp140_atomic_wait.dllMicrosoft Visual C++ Redistributable / InstallRequiredSystemLibrariesCore\binUsed by newer MSVC standard library implementations.
msvcp140_codecvt_ids.dllMicrosoft Visual C++ Redistributable / InstallRequiredSystemLibrariesCore\binUsed by newer MSVC standard library implementations.
concrt140.dllMicrosoft Visual C++ Redistributable / InstallRequiredSystemLibrariesCore\binConcurrency runtime, pulled in by MSVC runtime dependency collection.
SciLexer.dllBuilt from Scintilla/LexillaIDE\binRequired by NuBasicIDE.exe; if missing, the IDE can fail shortly after the splash screen.

For the 2.0.2 MSI staging tree, the Core component contains:

concrt140.dll
ffi-8.dll
msvcp140.dll
msvcp140_1.dll
msvcp140_2.dll
msvcp140_atomic_wait.dll
msvcp140_codecvt_ids.dll
vcruntime140.dll
vcruntime140_1.dll

The IDE component contains:

NuBasicIDE.exe
SciLexer.dll

System DLLs

These imports are provided by Windows on supported systems. nuBASIC 2.x targets Windows 10 and newer; Windows 7 is not supported.

DLL familyExpected provider
KERNEL32.dll, USER32.dll, GDI32.dll, SHELL32.dll, ADVAPI32.dllWindows system directories
COMCTL32.dll, COMDLG32.dll, ole32.dll, OLEAUT32.dll, IMM32.dllWindows system directories
gdiplus.dll, WINMM.dllWindows system directories
api-ms-win-crt-*.dllWindows Universal C Runtime, present on Windows 10/11

If an api-ms-win-crt-* DLL is reported missing, the machine is either below the supported OS baseline, damaged, or missing Windows servicing updates. Do not bundle those API-set DLLs manually.

Binary Import Summary

nubasic.exe

ADVAPI32.dll
api-ms-win-crt-conio-l1-1-0.dll
api-ms-win-crt-convert-l1-1-0.dll
api-ms-win-crt-environment-l1-1-0.dll
api-ms-win-crt-filesystem-l1-1-0.dll
api-ms-win-crt-heap-l1-1-0.dll
api-ms-win-crt-locale-l1-1-0.dll
api-ms-win-crt-math-l1-1-0.dll
api-ms-win-crt-runtime-l1-1-0.dll
api-ms-win-crt-stdio-l1-1-0.dll
api-ms-win-crt-string-l1-1-0.dll
api-ms-win-crt-time-l1-1-0.dll
api-ms-win-crt-utility-l1-1-0.dll
ffi-8.dll
GDI32.dll
gdiplus.dll
KERNEL32.dll
MSVCP140.dll
ole32.dll
USER32.dll
VCRUNTIME140.dll
VCRUNTIME140_1.dll
WINMM.dll

nubasicdebug.exe

Same dependency set as nubasic.exe.

nubasicgdi.exe

Same dependency set as nubasic.exe, plus:

SHELL32.dll

NuBasicIDE.exe

ADVAPI32.dll
api-ms-win-crt-conio-l1-1-0.dll
api-ms-win-crt-convert-l1-1-0.dll
api-ms-win-crt-environment-l1-1-0.dll
api-ms-win-crt-filesystem-l1-1-0.dll
api-ms-win-crt-heap-l1-1-0.dll
api-ms-win-crt-locale-l1-1-0.dll
api-ms-win-crt-math-l1-1-0.dll
api-ms-win-crt-runtime-l1-1-0.dll
api-ms-win-crt-stdio-l1-1-0.dll
api-ms-win-crt-string-l1-1-0.dll
api-ms-win-crt-time-l1-1-0.dll
api-ms-win-crt-utility-l1-1-0.dll
COMCTL32.dll
COMDLG32.dll
ffi-8.dll
GDI32.dll
gdiplus.dll
KERNEL32.dll
MSVCP140.dll
ole32.dll
SHELL32.dll
USER32.dll
VCRUNTIME140.dll
VCRUNTIME140_1.dll
WINMM.dll

NuBasicIDE.exe also dynamically loads SciLexer.dll at runtime.

SciLexer.dll

ADVAPI32.dll
api-ms-win-crt-convert-l1-1-0.dll
api-ms-win-crt-heap-l1-1-0.dll
api-ms-win-crt-locale-l1-1-0.dll
api-ms-win-crt-math-l1-1-0.dll
api-ms-win-crt-runtime-l1-1-0.dll
api-ms-win-crt-stdio-l1-1-0.dll
api-ms-win-crt-string-l1-1-0.dll
GDI32.dll
IMM32.dll
KERNEL32.dll
MSVCP140.dll
ole32.dll
OLEAUT32.dll
USER32.dll
VCRUNTIME140.dll
VCRUNTIME140_1.dll

Diagnostic Procedure

On an affected Windows machine, run:

powershell -NoProfile -ExecutionPolicy Bypass `
  -File "C:\Program Files\nuBASIC\bin\diagnose-windows-install.ps1"

The generated zip contains installed-bin.txt and smoke-tests.txt, which are the first files to inspect for missing DLL problems.