Feedback

C# - C++-Makros in .NET

Veröffentlicht von am 07.06.2013
(1 Bewertungen)
Diese Klasse enthält einige, nach .NET portrierte, C++-Makros.
Diese sind in der minwindef.h deklariert.

Diese Makros können beispielsweise für den Aufruf bzw. das Auslesen von nativen Windows-Methoden genutzt werden.

Hinweis: In den XML-Dokumentationen sind die dazugehöhrigen MSDN-Artikel verlinkt.
GFU-Schulungen  [Anzeige]

VB.NET Komplett

Sie stehen vo der Aufgabe, individuelle Anwendungen für Windows zu schreiben. Hier ist VB.NET die optimale Sprache. Sie erlernt sich recht leicht und passt sich komplett in die .NET Umgebung von Microsoft ein. Nach der Schulung entwickeln Sie anwenderfreundliche Programme in VB.NET . Mit den objektorientierten Modellen in VB.NET erzeugen Sie außerdem wiederverwendbare Komponenten.

ASP.NET Core - Der Einstieg

In nur 3 Tagen lernen Sie, wie man mit ASP.NET Core und den Technologien MVC, Entity Framework, WebAPI und Razor professionelle Web-Anwendungs-Architekturen aufbaut. Diese Schulung ist der perfekte Einstieg, um datengetriebene und präsentations-orientierte Applikationen auf Basis der ASP.NET Core Plattform zu erstellen.

    /// <summary>
    /// Stellt einige C++-Makros bereit.
    /// </summary>
    static class Macro
    {
        // BYTE = Byte
        // WORD = Int16
        // DWORD = LONG = Int32
        // QWORD = Int64

        /// <summary>
        /// MAKEWORD Makro: http://msdn.microsoft.com/de-de/library/windows/desktop/ms632663.aspx
        /// Verknüpft 2 Byte-Werte zu einem UInt16-Wert.
        /// </summary>
        /// <param name="a">Der erste Byte-Wert.</param>
        /// <param name="b">Der zweite Byte-Wert.</param>
        /// <returns>Die Verknüpfung der 2 Byte-Werte.</returns>
        public static UInt16 MAKEWORD(Byte a, Byte b)
        {
            return (UInt16)(a << 8 | b);
        }

        /// <summary>
        /// MAKELONG Makro: http://msdn.microsoft.com/de-de/library/windows/desktop/ms632660.aspx
        /// Verknüpft 2 UInt16-Werte zu einem UInt32-Wert.
        /// </summary>
        /// <param name="a">Der erste UInt16-Wert.</param>
        /// <param name="b">Der zweite UInt16-Wert.</param>
        /// <returns>Die Verknüpfung der 2 UInt16-Werte.</returns>
        public static UInt32 MAKELONG(UInt16 a, UInt16 b)
        {
            return (UInt32)(a << 16 | b);
        }

        /// <summary>
        /// LOBYTE-Makro: http://msdn.microsoft.com/de-de/library/windows/desktop/ms632658.aspx
        /// Gibt den niederen Byte-Wert des UInt16-Werts zurück.
        /// </summary>
        /// <param name="a">Der UInt16-Wert.</param>
        /// <returns>Der niedere Byte-Wert des UInt16-Wertes.</returns>
        public static Byte LOBYTE(UInt16 a)
        {
            return (Byte)(a & 0xff);
        }

        /// <summary>
        /// HIBYTE-Makro: http://msdn.microsoft.com/de-de/library/windows/desktop/ms632656.aspx
        /// Gibt den höheren Byte-Wert des UInt16-Werts zurück.
        /// </summary>
        /// <param name="a">Der UInt16-Wert.</param>
        /// <returns>Der höhere Byte-Wert des UInt16-Wertes.</returns>
        public static Byte HIBYTE(UInt16 a)
        {
            return (Byte)(a >> 8);
        }

        /// <summary>
        /// LOWORD-Makro: http://msdn.microsoft.com/de-de/library/windows/desktop/ms632659.aspx
        /// Gibt den niederen UInt16-Wert des UInt32-Werts zurück.
        /// </summary>
        /// <param name="a">Der UInt32-Wert.</param>
        /// <returns>Der niedere UInt16-Wert des UInt32-Wertes.</returns>
        public static UInt16 LOWORD(UInt32 a)
        {
            return (UInt16)(a & 0xffff);
        }

        /// <summary>
        /// HIWORD-Makro: http://msdn.microsoft.com/de-de/library/windows/desktop/ms632657.aspx
        /// Gibt den höheren UInt16-Wert des UInt32-Werts zurück.
        /// </summary>
        /// <param name="a">Der UInt32-Wert.</param>
        /// <returns>Der höhere UInt16-Wert des UInt32-Wertes.</returns>
        public static UInt16 HIWORD(UInt32 a)
        {
            return (UInt16)(a >> 16);
        }
    }

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!