C# System.EntryPointNotFoundException和DllImport(“kernel32.dll”)

C# System.EntryPointNotFoundException和DllImport(“kernel32.dll”),c#,dllimport,C#,Dllimport,为什么我在这段代码中有EntryPointNotFoundException。(来源)我的操作系统是Windows XP SP3 using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; namespace System_Info { class Program { [DllImport("kernel32.dl

为什么我在这段代码中有EntryPointNotFoundException。(来源)我的操作系统是Windows XP SP3

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

namespace System_Info
{
    class Program
    {
        [DllImport("kernel32.dll", SetLastError = false)]
        static extern bool GetProductInfo(
             int dwOSMajorVersion,
             int dwOSMinorVersion,
             int dwSpMajorVersion,
             int dwSpMinorVersion,
             out int pdwReturnedProductType);

        static void Main(string[] args)
        {

            int ProductNum;

            GetProductInfo(
             Environment.OSVersion.Version.Major,
             Environment.OSVersion.Version.Minor,
             0,
             0,
             out ProductNum);

            Console.WriteLine(Environment.OSVersion.Version.Build);
            Console.WriteLine(Environment.OSVersion.Version.Major);
            Console.WriteLine(Environment.OSVersion.Version.MajorRevision);
            Console.WriteLine(Environment.OSVersion.Version.Minor);
            Console.WriteLine(Environment.OSVersion.Version.MinorRevision);
            Console.WriteLine(Environment.OSVersion.Version.Revision);

            Console.WriteLine(ProductNum);

            Console.ReadKey();
        }
    }
}
问候,


Florian

根据,它仅支持Vista或Windows Server 2008。(请参见“要求”部分)

根据,它仅支持Vista或Windows Server 2008。(请参见“要求”部分)

似乎您应该这样做:

        OperatingSystem os = Environment.OSVersion;
        Version osVer = os.Version;
        Console.WriteLine(osVer.Build);
        Console.WriteLine(osVer.Major);
        Console.WriteLine(osVer.MajorRevision);
        Console.WriteLine(osVer.Minor);
        Console.WriteLine(osVer.MinorRevision);
        Console.WriteLine(osVer.Revision); 

如果这是您要查找的信息(与测试pInvoke相反)。

似乎您应该这样做:

        OperatingSystem os = Environment.OSVersion;
        Version osVer = os.Version;
        Console.WriteLine(osVer.Build);
        Console.WriteLine(osVer.Major);
        Console.WriteLine(osVer.MajorRevision);
        Console.WriteLine(osVer.Minor);
        Console.WriteLine(osVer.MinorRevision);
        Console.WriteLine(osVer.Revision); 
如果它是您正在寻找的信息(与测试pInvoke相反)