Common C and C++ source files used by LTRData's native Windows code. This collection contains implementations for support routines and classes declared in LTRData/include, along with older compatibility code and experiments.
The repository contains 58 source files. Its Git history begins with a repository conversion in May 2024; the code includes substantially older designs and compatibility paths, including a Windows 95 workaround. The conversion date is not the original development date.
| Area | Representative files and purpose |
|---|---|
| Errors and logging | waerror.c, wwerror.c, the *perror.c files, wapdherror.c, and *errlog.cpp / wmsglog.cpp: Windows, NTSTATUS, socket and PDH error text, printing, and timestamped logging. |
| Console and formatting | wconsole.c, wconsole.cpp, wconwin.c, wconmsg.cpp, wconmsgw.cpp, woemprnf.c, and wmprintf*.c: console operations, message prompts, and allocated/formatted output. |
| Strings and character conversion | wstring.c, wmemstr.c, wmemwcs.c, *towide.c, wwideto*.c, and wmsgoem.cpp: trimming, searching, and ANSI/OEM/wide-character conversion. |
| Stream I/O | wio.cpp and wol*.cpp: completion routines, buffered and line-oriented I/O through WOverlapped and WOverlappedIOC, and command-line input. wreadpwd.c and wreadpwdw.c provide password input helpers. |
| Networking | wsocket.cpp: IPv4 TCP connection helpers. tcproute.cpp: HTTP CONNECT and SOCKS proxy connection routines. |
| Native files and processes | ntfileio.cpp: native file/directory creation with optional parent-directory creation. loadremotelib.cpp: DLL loading in another process through a remote thread. |
| Privileges and scheduling | waenpriv.c / wwenpriv.c: token privilege helpers. wthread.c, wmsleep.c, and spsleep.cpp: thread creation, sleep, and x86 processor-yield support. |
| Mapping compatibility | wmmap.c and wmsync.c: Windows-backed implementations of mmap, munmap, and msync, with a limited set of supported flags. |
| Other support and experiments | wtime.c / wtimeflt.c: date, time, and duration output; wimath.c: integer arithmetic helpers; winstrct.cpp: older wrapper-object definitions; wcslen.c: x86 assembly implementation with a test entry point. |
There is no checked-in solution, project, makefile, package definition, or automated test suite. Build integration belongs to the consuming project or support-library build.
- Obtain the corresponding headers from LTRData/include and add them to the compiler's include path. Common dependencies include
winstrct.h,wio.h,wsocket.hpp,ntfileio.hpp, andntdll.h. - Select the required source files and their dependencies explicitly. The collection includes legacy alternatives and experiments; in particular,
wcslen.ccontains its ownwmainand unguarded x86 inline assembly. - Use a Windows C/C++ toolchain and SDK compatible with those files, with the appropriate Windows/CRT import libraries. Some code uses MSVC-specific extensions or architecture conditions. The POSIX-named mapping and sleep functions are implemented using Windows APIs.
- Check the shared headers' library directives.
winstrct.hnormally requestswinstrct.libandwinstrcp.lib; definingNO_WINSTRCT_LIB_IMPORTsuppresses those requests when supplying the implementations another way, but does not supply missing symbols.wcslen.calso requestsminwcrtwhen_DLLis defined. - Match source and header declarations, character-set settings, and target architecture for the chosen build. The current repository does not provide a configuration that compiles every file together.
LTRData/props contains related Visual C++ property sheets for shared include/library paths and legacy build environments. Those sheets do not define a build for this source collection or provide compiled libraries.
The files preserve different generations of Windows support code. For example, wsocket.cpp uses IPv4 and older name-resolution APIs, spsleep.cpp has an x86-only implementation, and msync rejects asynchronous and invalidate flags. Select and verify the routines needed by the consuming application; the collection has no repository-wide platform or compiler compatibility matrix.
This repository currently has no root license file or explicit license notices in its source files. Contact the maintainer to clarify licensing for reuse. The companion header repository contains separate notices that should be checked for the headers used.