Фон: Я хочу включить NVIDIA optimus по умолчанию.Решение, рекомендованное NVIDIA, заключается в использовании extern "C" _declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001;
.
Поэтому мне нужно определить DWORD
.
Я прочитал этот вопрос , который требует минимумазаголовок, который определяет DWORD
с лучшим решением для определения WIN32_LEAN_AND_MEAN
и все еще использовать windows.h или определять его самостоятельно, потому что он вряд ли изменится.
В отличие от упомянутого вопроса, у меня нет проблемс размером windows.h сам по себе (нет проблем при использовании скомпилированных заголовков).Однако я хотел бы избежать засорения глобального пространства имен всеми его типами, функциями и т. Д., Тем более что мне нужен только один тип для одной строки кода.
TLDR: Есть ли способвключить заголовок, но все его содержимое доступно только в ограниченном объеме?
Обратите внимание, что вы не можете просто включить заголовок в пространство имен, например:
namespace encloseWindowsTypes {
#include <Windows.h>
extern "C" _declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001;
}
, так как частьWindows.h полагается на то, что предыдущая часть была определена в глобальном пространстве имен, и вы получите ошибки типа 'div_t': is not a member of '`global namespace''
.