From 3b12cdde22a08bdbc9e4566fcb83cf9d51324af4 Mon Sep 17 00:00:00 2001 From: Iain Patterson Date: Tue, 23 Feb 2016 13:41:28 +0000 Subject: [PATCH] Fix compilation on VS2015. Paul Baxter and Mathias Breiner independently reported fixes to get the project to compile on Visual Studio 2015. --- README.txt | 1 + gui.cpp | 2 +- service.cpp | 2 +- settings.cpp | 4 ++-- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/README.txt b/README.txt index 02306e5..6fb7d9a 100644 --- a/README.txt +++ b/README.txt @@ -880,6 +880,7 @@ Thanks to Gerald Haider for noticing that installing a service with NSSM in a path containing spaces was technically a security vulnerability. Thanks to Scott Ware for reporting a crash saving the environment on XP 32-bit. Thanks to Stefan and Michael Scherer for reporting a bug writing the event messages source. +Thanks to Paul Baxter and Mathias Breiner for help with Visual Studio 2015. Licence ------- diff --git a/gui.cpp b/gui.cpp index f47be58..a0dfaa2 100644 --- a/gui.cpp +++ b/gui.cpp @@ -1,6 +1,6 @@ #include "nssm.h" -static enum { NSSM_TAB_APPLICATION, NSSM_TAB_DETAILS, NSSM_TAB_LOGON, NSSM_TAB_DEPENDENCIES, NSSM_TAB_PROCESS, NSSM_TAB_SHUTDOWN, NSSM_TAB_EXIT, NSSM_TAB_IO, NSSM_TAB_ROTATION, NSSM_TAB_ENVIRONMENT, NSSM_TAB_HOOKS, NSSM_NUM_TABS }; +static enum { NSSM_TAB_APPLICATION, NSSM_TAB_DETAILS, NSSM_TAB_LOGON, NSSM_TAB_DEPENDENCIES, NSSM_TAB_PROCESS, NSSM_TAB_SHUTDOWN, NSSM_TAB_EXIT, NSSM_TAB_IO, NSSM_TAB_ROTATION, NSSM_TAB_ENVIRONMENT, NSSM_TAB_HOOKS, NSSM_NUM_TABS } nssm_tabs; static HWND tablist[NSSM_NUM_TABS]; static const TCHAR *hook_event_strings[] = { NSSM_HOOK_EVENT_START, NSSM_HOOK_EVENT_STOP, NSSM_HOOK_EVENT_EXIT, NSSM_HOOK_EVENT_POWER, NSSM_HOOK_EVENT_ROTATE, NULL }; static const TCHAR *hook_action_strings[] = { NSSM_HOOK_ACTION_PRE, NSSM_HOOK_ACTION_POST, NSSM_HOOK_ACTION_CHANGE, NSSM_HOOK_ACTION_RESUME, NULL }; diff --git a/service.cpp b/service.cpp index b24eae2..d864fa2 100644 --- a/service.cpp +++ b/service.cpp @@ -240,7 +240,7 @@ int affinity_string_to_mask(TCHAR *string, __int64 *mask) { return 0; } -inline unsigned long priority_mask() { +unsigned long priority_mask() { return REALTIME_PRIORITY_CLASS | HIGH_PRIORITY_CLASS | ABOVE_NORMAL_PRIORITY_CLASS | NORMAL_PRIORITY_CLASS | BELOW_NORMAL_PRIORITY_CLASS | IDLE_PRIORITY_CLASS; } diff --git a/settings.cpp b/settings.cpp index cbded45..4bbdd57 100644 --- a/settings.cpp +++ b/settings.cpp @@ -52,7 +52,7 @@ static int setting_set_number(const TCHAR *service_name, void *param, const TCHA } if (str_number(value->string, &number)) return -1; - if (default_value && number == (unsigned long) default_value) { + if (default_value && number == PtrToUlong(default_value)) { error = RegDeleteValue(key, name); if (error == ERROR_SUCCESS || error == ERROR_FILE_NOT_FOUND) return 0; print_message(stderr, NSSM_MESSAGE_REGDELETEVALUE_FAILED, name, service_name, error_string(error)); @@ -1058,7 +1058,7 @@ int get_setting(const TCHAR *service_name, HKEY key, settings_t *setting, value_ break; case REG_DWORD: - value->numeric = (unsigned long) setting->default_value; + value->numeric = PtrToUlong(setting->default_value); if (setting->get) ret = setting->get(service_name, (void *) key, setting->name, setting->default_value, value, additional); else ret = -1; break; -- 2.20.1