Найти цель платформы C ++ во время компиляции в visual studio

Я строю свое решение для платформ x86 и x64.
Есть ли в Visual Studio какие-либо переменные целевой платформы, чтобы я мог определить, какую платформу я собираю во время компиляции?

Например:

HINSTANCE hinstLib;
#ifdef TARGET_X86
hinstLib = LoadLibrary("32lib.dll");
#endif

#ifdef TARGET_X64
hinstLib = LoadLibrary("64lib.dll");
#endif

0

Решение

Это то, что я использую:

#if defined(_MSC_VER)
// Microsoft VC compiler
#    if defined(_WIN32)
#        if defined(_WIN64)
// 64 bit windows
#        else
// 32 bit windows
#        endif
#    endif
#endif

Обратите внимание, что _WIN32 является определено для 64 бит тоже.

2

Другие решения

Посмотрите здесь: http://msdn.microsoft.com/en-US/library/b0084kay.aspx

_WIN64 или же _M_X64 должно сработать.

Итак, для вашего примера:

HINSTANCE hinstLib;
#ifdef _WIN64
hinstLib = LoadLibrary("64lib.dll");
#else
hinstLib = LoadLibrary("32lib.dll");
#endif
0

По вопросам рекламы [email protected]