Статический конструктор C# и GetVersion() любые предложения?Статический конструктор C# и GetVersion() любые предложения?
Привет, я определил-структуру, как это в отдельных OSVERSIONINFO.cs файлов, как это:
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public struct OSVERSIONINFO
{
public static int SizeOf
{
get
{
return Marshal.SizeOf (typeof(OSVERSIONINFO));
}
}
public uint dwOSVersionInfoSize;
public uint dwMajorVersion;
public uint dwMinorVersion;
public uint dwBuildNumber;
public uint dwPlatformId;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
public string szCSDVersion;
}
Также у меня есть этот файл OS.cs, в котором я определил следующий класс:
public static class OS
{
static OS()
{
OSVERSIONINFO info = new OSVERSIONINFO();
info.dwOSVersionInfoSize = (uint)OSVERSIONINFO.SizeOf;
if (!OS.GetVersion(ref info))
{
Console.WriteLine("Error!!!");
}
}
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool GetVersion (ref OSVERSIONINFO lpVersionInfo);
}
Путь в статическом конструкторе класса OS-класса информации (экземпляр структуры OSVERSIONINFO) не удается? Если я вызываю OS.GetVersion в другом ладони (не в классе ОС), все в порядке?
Вы не указали код для OS.GetVersion, и вы не сказали, каким образом он терпит неудачу. –
Является ли GetVersion() объявленным статическим? – Simon
Есть ли причина, по которой вы не можете использовать 'Environment.OSVersion' для доступа к информации о версии ОС? – LBushkin