Skip to content

Conversation

@ImJotaM
Copy link
Contributor

@ImJotaM ImJotaM commented Sep 11, 2025

Previously, including both subprocess.hpp and <Windows.h> in the same file would cause compilation errors due to redefinitions of Windows API types and functions.

This commit resolves these conflicts by wrapping the manual API declarations in subprocess.hpp with an #ifndef _WINDEF_ guard. This ensures the library's lightweight declarations are only used if the official Windows headers haven't been included, making it safe to use both.

The test_ret_code.cc unit test has been updated to include <Windows.h> directly for the Sleep function, which also serves to validate this fix.

ImJotaM and others added 3 commits September 8, 2025 17:42
This commit replaces the direct inclusion of `<windows.h>` with a minimal set of manual forward declarations.

This is a deliberate architectural change to:
- **Improve Compilation Speed:** Avoids parsing the notoriously large Windows header.
- **Eliminate Naming Pollution:** Prevents name clashes with common names like `min`/`max` which conflict with the C++ standard library.
- **Enhance Encapsulation:** Makes the library more self-contained by not exposing the entire Windows API.
Previously, including both `subprocess.hpp` and `<Windows.h>` in the same file would cause compilation errors due to redefinitions of Windows API types and functions.

This commit resolves these conflicts by wrapping the manual API declarations in `subprocess.hpp` with an `#ifndef _WINDEF_` guard. This ensures the library's lightweight declarations are only used if the official Windows headers haven't been included, making it safe to use both.

The `test_ret_code.cc` unit test has been updated to include `<Windows.h>` directly for the `Sleep` function, which also serves to validate this fix.
@ImJotaM ImJotaM closed this Sep 11, 2025
Wraps the Windows.h include in a platform guard to prevent breaking non-Windows builds.
@ImJotaM ImJotaM reopened this Sep 11, 2025
@arun11299 arun11299 merged commit ad47657 into arun11299:master Sep 12, 2025
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants