Как определить, была ли программа выполнения скомпилирована для 64 битов?

Попробуйте это

  HomeStack.navigationOptions = {
    tabBarLabel: 'Home',
    tabBarIcon: ({focused, tintColor }) => (
        <TabBarIcon
            focused={focused}
            name={Platform.OS === 'ios' ? 'ios-home' : 'md-home'}
            tintColor={{ tintColor }}

        />
    ),
    tabBarOptions: {
        activeTintColor: '#cd077d',

    },
};
7
задан Steve 11 March 2009 в 18:51
поделиться

7 ответов

Проверка во время выполнения, если Вы запускаете 64-разрядное приложение:

Чтобы видеть, является ли Ваш процесс 64-разрядным или 32-разрядным, можно просто проверить IntPtr. Размер или любой другой тип указателя. Если Вы добираетесь 4 затем, Вы работаете 32-разрядный. Если Вы добираетесь 8 затем, Вы работаете 64-разрядный.

Какой компьютер является Вашим процессом, работающим как:

Можно проверить переменную среды PROCESSOR_ARCHITECTURE, чтобы видеть, работаете ли Вы на x64, ia64 или x86 машина.

Ваш процесс, работающий при эмуляции:

Win32 API IsWow64Process скажет Вам при запуске 32-разрядного приложения под x64. Wow64 означает windows32 на windows64.

Вопреки тому, что отправили другие люди: IsWow64Process не скажет Вам при выполнении 32-разрядного или приложения на 64 бита. На 32-разрядных машинах это скажет Вам ЛОЖЬ для 32-разрядных приложений, когда выполнено, и на 64-разрядной машине это скажет Вам TRUE для 32-разрядного приложения. Это только говорит Вам, если Ваше приложение работает при эмуляции.

7
ответ дан 6 December 2019 в 10:03
поделиться

Вы хотите приложение командной строки CORFLAGS от Microsoft. http://msdn.microsoft.com/en-us/library/ms164699 (По сравнению с 80) .aspx

2
ответ дан 6 December 2019 в 10:03
поделиться

Можно использовать функцию IsWow64Process для определения во времени выполнения whethehr сервер COM является процессом win32 или x64.

Если Вы просто хотите знать это в течение времени компиляции: компилятор устанавливает _WIN64 макрос.

2
ответ дан 6 December 2019 в 10:03
поделиться

Смотрите на условные методы.

1
ответ дан 6 December 2019 в 10:03
поделиться

Вы могли сделать это на основе установки констант времени компиляции и выполнения #ifs на основе тех для устанавливания значения, которое можно проверить для наблюдения, для какой платформы приложение было скомпилировано. Посмотрите Целевую платформу / процессор во время компиляции.

Самый легкий другой путь состоит в том, чтобы проверить IntPtr. Свойство Size, чтобы видеть, ли это 4 (32 бита), или 8 (64 бита).

1
ответ дан 6 December 2019 в 10:03
поделиться

В то время как на нечетный маршрут походит идти, можно сказать, работаете ли Вы в 32-разрядном (или 64-разрядные в WOW64) или 64-разрядный код.NET путем проверки IntPtr. Размер.

На 32-bit/WOW64, IntPtr. Размер равняется 4.

На 64-разрядном, IntPtr. Размер равняется 8.

Источник: миграция 32-разрядного управляемого кода к 64-разрядному управляемому коду на MSDN.

1
ответ дан 6 December 2019 в 10:03
поделиться

используйте функцию API GetBinaryType и у вас будет тип файла

это ссылка на API на msdn http://msdn.microsoft.com/en- us/library/aa364819(VS.85).aspx

результаты:

SCS_32BIT_BINARY = 32-битный exe

SCS_64BIT_BINARY = 64-битный exe

SCS_DOS_BINARY = DOS

SCS_OS216_BINARY = OS/2

SCS_WOW_BINARY = 16 бит

SCS_POSIX_BINARY = на основе POSIX

SCS_PIF_BINARY = файл PIF, который выполняется в DOS

2
ответ дан 6 December 2019 в 10:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: