Собственно сабж.
Как я об этом узнал: частенько у меня возникали недоумения по поводу программ, которые явно указываются как x32 в диспечере задач, но не обращал на это сильного внимания (прога ведь реально могла быть только в 32битном виде) до того как установил на другом компе Webstorm и мне в инсталляторе предложили 2 варианта 32-bit и 64-bit, затем сразу начал установку у себя на компе и не обнаружил варианта 64-bit и тут у меня как сложился пазл.
UPD:
Нашёл эти популярные строки, но они говорят "False". Видимо, что здесь вся проблема, но по-прежнему что конкретно не так - я не понимаю:
spoilerusing 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;
}
}
}
}