bitver
@bitver

Некоторые приложения не опознают что система 64bit, почему?

Собственно сабж.
Как я об этом узнал: частенько у меня возникали недоумения по поводу программ, которые явно указываются как x32 в диспечере задач, но не обращал на это сильного внимания (прога ведь реально могла быть только в 32битном виде) до того как установил на другом компе Webstorm и мне в инсталляторе предложили 2 варианта 32-bit и 64-bit, затем сразу начал установку у себя на компе и не обнаружил варианта 64-bit и тут у меня как сложился пазл.

UPD:
Нашёл эти популярные строки, но они говорят "False". Видимо, что здесь вся проблема, но по-прежнему что конкретно не так - я не понимаю:
spoiler

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Text;



namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            System.Console.WriteLine(InternalCheckIsWow64());
            System.Console.ReadKey();
        }

        static bool is64BitProcess = (IntPtr.Size == 8);
        static bool is64BitOperatingSystem = is64BitProcess || InternalCheckIsWow64();

        [DllImport("kernel32.dll", SetLastError = true, CallingConvention = CallingConvention.Winapi)]
        [return: MarshalAs(UnmanagedType.Bool)]
        private static extern bool IsWow64Process(
            [In] IntPtr hProcess,
            [Out] out bool wow64Process
        );

        public static bool InternalCheckIsWow64()
        {
            if ((Environment.OSVersion.Version.Major == 5 && Environment.OSVersion.Version.Minor >= 1) ||
                Environment.OSVersion.Version.Major >= 6)
            {
                using (Process p = Process.GetCurrentProcess())
                {
                    bool retVal;
                    if (!IsWow64Process(p.Handle, out retVal))
                    {
                        return false;
                    }
                    return retVal;
                }
            }
            else
            {
                return false;
            }
        }
    }
}

  • Вопрос задан
  • 393 просмотра
Пригласить эксперта
Ответы на вопрос 3
abyrkov
@abyrkov
JavaScripter
х32 спокойно будут работать на х64. То, что у вас автоматом поставилось х32, может означать:
1. У вас х32
2. Косяки разработчиков
Ответ написан
WNeZRoS
@WNeZRoS
Webstorm написан на java, чтобы запускался как x64 надо установить x64 версию java (по умолчанию с сайта скачивается 32 битная). По поводу кода на C# - всё аналогично, только зависит от настроек сборки (можно выставить или конкретную платформу или предпочтение x64/x86)
Ответ написан
@Otrivin
junior full-stack сисадмин
Пришло время переустановить Шиндошс, как мне кажется, проблема будет решена

Ну или попробовать sfc /scannow
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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