Skip to Content
C# 9.0 in einer Kurzfassung
book

C# 9.0 in einer Kurzfassung

by Joseph Albahari
October 2024
Intermediate to advanced
1060 pages
29h 12m
German
O'Reilly Media, Inc.
Content preview from C# 9.0 in einer Kurzfassung

Kapitel 24. Native und COM-Interoperabilität

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Dieses Kapitel beschreibt die Integration mit nativen (nicht verwalteten) Dynamic-Link Libraries (DLLs) und Component Object Model (COM) Komponenten. Wenn nicht anders angegeben, befinden sich die in diesem Kapitel erwähnten Typen entweder im System oder im System.Runtime.InteropServices Namensraum.

Aufrufen von nativen DLLs

P/Invoke, kurz für Platform Invocation Services, ermöglicht dir den Zugriff auf Funktionen, Strukturen und Callbacks in nicht verwalteten DLLs(Shared Libraries unter Unix).

Nehmen wir zum Beispiel die Funktion MessageBox, die in der Windows-DLL user32.dll wie folgt definiert ist:

int MessageBox (HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType);

Du kannst diese Funktion direkt aufrufen, indem du eine statische Methode mit demselben Namen deklarierst, das Schlüsselwort extern anwendest und das Attribut DllImport hinzufügst:

using System;
using System.Runtime.InteropServices;

MessageBox (IntPtr.Zero,
            "Please do not press this again.", "Attention", 0);

[DllImport("user32.dll")]
static extern int MessageBox (IntPtr hWnd, string text, string caption,
                              int type);

Die MessageBox Klassen in den Namensräumen System.Windows und System.Windows.Forms rufen selbst ähnliche nicht verwaltete Methoden auf.

Hier ist ein DllImport Beispiel für Ubuntu Linux:

Console.WriteLine ($"User ID: {getuid()}"); ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

C# 10 Pocket Reference

C# 10 Pocket Reference

Joseph Albahari, Ben Albahari
The Hidden Cost of AI-Assisted Creativity

The Hidden Cost of AI-Assisted Creativity

Léonard Boussioux, Anil Doshi, Oliver Hauser, Kartik Hosanagar

Publisher Resources

ISBN: 9798341607606