Visual C++, işletim sistemi hizmet paketi düzeyi nasıl belirlenir

ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.

Makalenin İngilizcesi aşağıdaki gibidir:307393
Bu makale arşivlenmiştir. "Olduğu gibi" sunulmaktadır ve bundan sonra güncelleştirilmeyecektir.
Bu makalenin Microsoft Visual C# .NET sürümü için bkz: 304721.
Bu makalenin Microsoft Visual Basic .NET sürümü için bkz: 304722.

Bu makalede, aşağıdaki Microsoft .NET Framework Sınıf Kitaplığı ad alanına başvurulmaktadır:
  • System.Runtime.ınteropservices
Özet
Bu adım adım makalede, GetServicePack yöntem oluşturma yöntemlerini gösterir.
Daha fazla bilgi
OSVersion özelliği, işletim sistemi (OS) bilgilerini almak için sağlanan, hizmet paketi bilgileri sağlayan bir üye içermiyor. Hangi hizmet paketinin yüklü olduğunu belirlemek için <a0></a0>, doğrudan GetVersionEx API işlevini çağırmalısınız. Genelde, bu uygulama önlemek iyidir; .NET Framework temel API kümesi daha tutarlı (ve daha kolay kullanılır) erişimi sağlar tek tek API işlevlerini çağıran tarafından farklı şekilde.

Doğrudan bir API işlevi çağırmalıdır, .NET Framework ınterop katmanı bunu yapabilirsiniz. Bu makaledeki örnek kod, hizmet paketi düzeyini döndüren GetServicePack, bir yöntem sağlar.

Not: bir sabit uzunluklu dize szCSDVersion OSVERSIONINFO yapısını içerir. Sabit uzunluklu dizeler artık desteklenmemektedir çünkü bu üyeyi uzayları arası taşıma bilgilerini sağlamanız gerekir. ([] Ile belirtilen) özniteliğini kullanarak bunu üye adının önünde.
  1. Yeni bir .NET C++ yönetilen uygulamayı açın.

    NotYeni proje) iletişim kutusunda, Visual C++ ProjectsProject Types altında tıklatın ve sonra C++ uygulama yönetilen Visual Studio .NET 2002, Console Application (.NET) için Visual Studio .NET 2003 veya CLR Console Application için Şablonlar altında Visual Studio 2005'i tıklatın.
  2. Ilgili <a1>Kod</a1> penceresi açın Project Name.cpp, tüm kodu silin.
  3. Aşağıdaki örnek kodu yapıştırın:
    #include "stdafx.h" #using <mscorlib.dll> using namespace System;using namespace System::Runtime::InteropServices;String *GetServicePack(void);[StructLayout(StructLayoutKind::Sequential)]__value struct OSVERSIONINFO{public: unsigned long dwOSVersionInfoSize;  unsigned long dwMajorVersion;  unsigned long dwMinorVersion;  unsigned long dwBuildNumber;  unsigned long dwPlatformId; [MarshalAs(UnmanagedType::ByValTStr, SizeConst=128)] String* szCSDVersion;}; [DllImport("kernel32.dll", EntryPoint="GetVersionEx",  SetLastError=true,      CallingConvention=CallingConvention::StdCall)]extern long GetVersionEx ( [In, Out] OSVERSIONINFO* povi ); // This is the entry point for this application.#ifdef _UNICODEint wmain(void)#elseint main(void)#endif{	Console::WriteLine(GetServicePack());        return 0;}String *GetServicePack(void){ OSVERSIONINFO ovi; ovi.dwOSVersionInfoSize = Marshal::SizeOf ( __typeof(OSVERSIONINFO) );  if ( GetVersionEx ( &ovi ) == 0 ) {	  return (S"Call to GetVersionEx() failed.");   } if (ovi.szCSDVersion==(S""))					 	  return (S"No Service Pack Installed"); else      return (ovi.szCSDVersion);   }					
  4. Projeyi çalıştırın ve CTRL + F5 tuşuna basın. Hizmet paketi bilgileri, konsol penceresinde görüntülenir.
Referanslar
Visual C++ .NET hakkında daha fazla genel bilgi için aşağıdaki Microsoft Usenet haber grubu ve Microsoft Web sitesini ziyaret edin:

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 307393 - Son İnceleme: 01/16/2015 23:27:01 - Düzeltme: 3.2

Microsoft Visual C++ 2005 Express Edition, Microsoft Visual C++ .NET 2003 Standard Edition, Microsoft Visual C++ .NET 2002 Standard Edition

  • kbnosurvey kbarchive kbmt kbhowtomaster kbnewsgrouplink KB307393 KbMttr
Geri bildirim