-
Couldn't load subscription status.
- Fork 0
Home
PyCTools is a lightweight set of native DLLs and Python bindings for process inspection, memory analysis, and system metric collection on Windows.
This wiki serves as the official documentation hub. Whether you're a C developer building your own DLLs, a Python user leveraging the wrappers, or just curious how the system works under the hood — you're in the right place.
-
DLL Internals & Discovery How the
processInspectandhRngDLLs are structured, built, and dynamically located. -
Python Usage & Examples Step-by-step guides for using the wrapper classes, session handling, and metric querying.
-
C Code Explanations Detailed look into the native code powering the DLLs, from memory APIs to performance counters.
⚙ Whether you're downloading prebuilt binaries or compiling from source — this wiki will help you understand how it all fits together.
Important
Starting from v0.2.0-beta the script now purely checks bin/ inside the pyCTools directory!
In short ignore everything on the bottom
Compiled DLLs are placed in the bin/ directory, organized by architecture:
dist/
x64/
hRng_x64.dll
processInspect_x64.dll
...
x86/
hRng_x86.dll
processInspect_x86.dll
...
-
x64/: DLLs for 64-bit Python and applications -
x86/: DLLs for 32-bit Python and applications
Both hwrng and processInspect automatically search for the correct DLL based on your Python interpreter's architecture. Locations that are searched are:
-
./bin/{arch}/{dll}_{arch}.dll(relative to the Python library file)
Where
{arch}isx64orx86and{dll}is the mentioned/provided dll per library.
If the DLL is not found, a
FileNotFoundErroris raised.
-
Open PowerShell and run:
cd ./tool/ compilerHelper.ps1
-
Choose the
.csource files you want to compile. -
The script will compile for both x86 and x64 architectures, placing the output in:
-
pyCTools/bin/x86(32-bit builds) -
pyCTools/bin/x64(64-bit builds)
-
Important
The build process uses cl.exe from the MSVC toolchain in Visual Studio, so make sure it’s installed and available in your PATH.
Note
-
Each compiled source produces four files per architecture:
.dll,.exp,.lib, and.obj. -
Only the
.dllis needed by the Python library. -
DLL filenames include an architecture suffix:
- Example:
hRng_x86.dll,hRng_x64.dll.
- Example:
- If you get DLL not found errors, check that the correct DLLs exist in the expected
bin/{arch}folders. - Ensure you are using the correct Python architecture (x64 or x86) for the DLLs present.
This has been updated for version 0.2.0-beta (or 0.2.0b0 for python) on 13/08/2025