diff options
author | pg9182 <96569817+pg9182@users.noreply.github.com> | 2022-08-08 06:12:11 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-08 11:12:11 +0100 |
commit | 5e7668c2cd7ef9d017536f1e2e4ec89708f5b74f (patch) | |
tree | 6c55b909fd258251c238bfad9caf83113fd88f33 /loader_wsock32_proxy/hookutils.cpp | |
parent | 286cea5f6280e568f5cb4c953d93993c98625ce4 (diff) | |
download | NorthstarLauncher-5e7668c2cd7ef9d017536f1e2e4ec89708f5b74f.tar.gz NorthstarLauncher-5e7668c2cd7ef9d017536f1e2e4ec89708f5b74f.zip |
Fix most clang/mingw issues (#226)
- Fix include case.
- Replace MSVC-specific align with standard alignas.
- Type fixes.
- Delete operator noexcept.
- A few other minor issues.
- clang-format everything.
- Use c++20 instead of c++17.
- Rewrite ERROR macro for launcher_wsock32_proxy.
- Use a plain ifstream for the audio.cpp wavStream.
Note: When compiling with clang, you'll need -municode.
Related to #212.
Diffstat (limited to 'loader_wsock32_proxy/hookutils.cpp')
-rw-r--r-- | loader_wsock32_proxy/hookutils.cpp | 91 |
1 files changed, 49 insertions, 42 deletions
diff --git a/loader_wsock32_proxy/hookutils.cpp b/loader_wsock32_proxy/hookutils.cpp index f933f993..ed2b6c3a 100644 --- a/loader_wsock32_proxy/hookutils.cpp +++ b/loader_wsock32_proxy/hookutils.cpp @@ -1,54 +1,61 @@ +#include <cstdio> + #include "pch.h" #include "../NorthstarDedicatedTest/hookutils.h" -#define ERROR(...) { char err[2048]; sprintf_s(err, __VA_ARGS__); MessageBoxA(GetForegroundWindow(), err, "Northstar Wsock32 Proxy Error", 0); } +#define HU_ERROR(...) \ + { \ + char err[2048]; \ + snprintf(err, sizeof(err), __VA_ARGS__); \ + MessageBoxA(GetForegroundWindow(), err, "Northstar Wsock32 Proxy Error", 0); \ + } void HookEnabler::CreateHook(LPVOID ppTarget, LPVOID ppDetour, LPVOID* ppOriginal, const char* targetName) { - // the macro for this uses ppTarget's name as targetName, and this typically starts with & - // targetname is used for debug stuff and debug output is nicer if we don't have this - if (*targetName == '&') - targetName++; + // the macro for this uses ppTarget's name as targetName, and this typically starts with & + // targetname is used for debug stuff and debug output is nicer if we don't have this + if (*targetName == '&') + targetName++; - if (MH_CreateHook(ppTarget, ppDetour, ppOriginal) == MH_OK) - { - HookTarget* target = new HookTarget; - target->targetAddress = ppTarget; - target->targetName = (char*)targetName; + if (MH_CreateHook(ppTarget, ppDetour, ppOriginal) == MH_OK) + { + HookTarget* target = new HookTarget; + target->targetAddress = ppTarget; + target->targetName = (char*)targetName; - m_hookTargets.push_back(target); - } - else - { - if (targetName != nullptr) - { - ERROR("MH_CreateHook failed for function %s", targetName); - } - else - { - ERROR("MH_CreateHook failed for unknown function"); - } - } + m_hookTargets.push_back(target); + } + else + { + if (targetName != nullptr) + { + HU_ERROR("MH_CreateHook failed for function %s", targetName); + } + else + { + HU_ERROR("MH_CreateHook failed for unknown function"); + } + } } HookEnabler::~HookEnabler() { - for (auto& hook : m_hookTargets) - { - if (MH_EnableHook(hook->targetAddress) != MH_OK) - { - if (hook->targetName != nullptr) - { - ERROR("MH_EnableHook failed for function %s", hook->targetName); - } - else - { - ERROR("MH_EnableHook failed for unknown function"); - } - } - else - { - //ERROR("Enabling hook %s", hook->targetName); - } - } -}
\ No newline at end of file + for (auto& hook : m_hookTargets) + { + if (MH_EnableHook(hook->targetAddress) != MH_OK) + { + if (hook->targetName != nullptr) + { + HU_ERROR("MH_EnableHook failed for function %s", hook->targetName); + } + else + { + HU_ERROR("MH_EnableHook failed for unknown function"); + } + } + else + { + // HU_ERROR("Enabling hook %s", hook->targetName); + } + } +} |