N
N
Nikita2017-02-04 21:00:26
Windows
Nikita, 2017-02-04 21:00:26

Some applications do not recognize that the system is 64bit, why?

Actually a subject.
How I found out about it: I often had bewilderment about programs that are explicitly indicated as x32 in the task manager, but I did not pay much attention to this (after all, the program could really only be in 32-bit form) before I installed Webstorm on another computer and in the installer they offered me 2 options 32-bit and 64-bit, then I immediately started the installation on my computer and did not find the 64-bit option, and then I had a puzzle.
UPD:
Found these popular lines, but they say "False". It seems that this is the whole problem, but still what exactly is wrong - I do not understand:

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;
            }
        }
    }
}

Answer the question

In order to leave comments, you need to log in

3 answer(s)
D
Dark Hole, 2017-02-04
@abyrkov

x32 will work fine on x64. The fact that you have x32 installed automatically can mean:
1. You have x32
2. Weeds of developers

R
Roman, 2017-02-05
@WNeZRoS

Webstorm is written in java, in order to run as x64 you need to install the x64 version of java (32 bit is downloaded from the site by default). As for the C# code, everything is the same, it only depends on the build settings (you can set either a specific platform or x64 / x86 preference)

O
Otrivin, 2017-02-05
@Otrivin

It's time to reinstall Windows, it seems to me that the problem will be solved
Well, or try sfc /scannow

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question