https://github.com/chaoses-ib/ntwin32
Use the Win32 subsystem API while depending only on Ntdll.dll
https://github.com/chaoses-ib/ntwin32
kernel32 ntdll win32 win32api windows
Last synced: 3 months ago
JSON representation
Use the Win32 subsystem API while depending only on Ntdll.dll
- Host: GitHub
- URL: https://github.com/chaoses-ib/ntwin32
- Owner: Chaoses-Ib
- License: mit
- Created: 2022-09-25T13:23:07.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-09-26T14:28:05.000Z (over 3 years ago)
- Last Synced: 2025-04-15T23:02:02.539Z (9 months ago)
- Topics: kernel32, ntdll, win32, win32api, windows
- Language: C
- Homepage:
- Size: 3.91 KB
- Stars: 4
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# NtWin32
Use the Win32 subsystem API while depending only on Ntdll.dll.
## Example
example.cpp:
```cpp
#include
int main() {
SetLastError(123);
DWORD error = GetLastError();
}
```
CMake:
```cmake
# FetchContent_MakeAvailable requires CMake 3.14+
cmake_minimum_required(VERSION 3.14)
project(example)
FetchContent_Declare(
NtWin32
GIT_REPOSITORY https://github.com/Chaoses-Ib/NtWin32.git
# It is recommanded to specify a version instead of using the main branch
GIT_TAG main
)
FetchContent_MakeAvailable(NtWin32)
# Disable runtime error checks
string(REGEX REPLACE "/RTC[^ ]*" "" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
set(CMAKE_C_STANDARD_LIBRARIES "ntdll.lib" CACHE STRING "Libraries linked into every executable and shared library linked for C." FORCE)
set(CMAKE_CXX_STANDARD_LIBRARIES "ntdll.lib" CACHE STRING "Libraries linked into every executable and shared library linked for C++." FORCE)
add_executable(example example.cpp)
target_link_options(example PRIVATE /NODEFAULTLIB /ENTRY:main)
target_link_libraries(example PRIVATE NtWin32)
```