簡體   English   中英

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

[英]System.EntryPointNotFoundException and DllImport(“kernel32.dll”)

為什么在此代碼中出現EntryPointNotFoundException。 (源代碼pinvoke.net )我的操作系統是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();
        }
    }
}

問候,

弗洛里安

根據這個 ,它僅支持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)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM