"Verwenden von" vs [DllImport]?

8

Ich habe mich gefragt, was ist die oberste erklärte Referenzen und warum müssen wir immer noch DllImport verwenden? Ich spreche C #.

    
Kourosh 11.03.2011, 13:11
quelle

6 Antworten

10

Aus der MDSN-Dokumentation :

  

Das DllImport-Attribut ist bei der Wiederverwendung von vorhandenem nicht verwaltetem Code in einer verwalteten Anwendung sehr nützlich. Beispielsweise muss Ihre verwaltete Anwendung möglicherweise Aufrufe an die nicht verwaltete WIN32-API vornehmen.

Wenn Sie eine .NET-Anwendung schreiben und eine Bibliothek keinen verwalteten Wrapper besitzt (der in nicht verwaltetem Code geschrieben ist), müssen Sie DllImport verwenden, um damit zu interagieren. Andernfalls können Sie auf verwaltete Bibliotheken mit einer using -Anweisung verweisen, wie Sie normalerweise jede Basisklassenbibliothek verwenden würden.

    
wsanville 11.03.2011, 13:17
quelle
5

Wird verwendet, wenn Sie nicht verwalteten Code aufrufen müssen.

Sie müssen beispielsweise möglicherweise eine Windows-API-Funktion aufrufen, um etwas wie das folgende zu deklarieren:

%Vor%

Referenzen: Ссылка

    
dcp 11.03.2011 13:16
quelle
2

DLLImport wird verwendet, um eine native DLL-Bibliothek in eine verwaltete (.net) Anwendung zu importieren. Zum Beispiel kann eine in C ++ geschriebene Bibliothek importiert und in Ihrem c # -Projekt verwendet werden.

Verwenden wird verwendet, um auf einen Namespace zu verweisen, der sich in einer der verwalteten referenzierten DLLs befindet. Dies sind normalerweise .net-Assemblies.

    
SecretDeveloper 11.03.2011 13:17
quelle
1

Visual Studio erstellt für Sie die grundlegenden Referenzen (System zum Beispiel).

Sie benötigen DllImport nur, wenn Sie native Bibliotheken verwenden möchten

    
ggarber 11.03.2011 13:16
quelle
1

Die Direktive using enthält einen Namespace von einer referenzierten verwalteten Assembly.
Das DllImport wird zum Importieren von Methoden aus nicht verwalteten DLLs verwendet.

    
Daniel Hilgarth 11.03.2011 13:17
quelle
1

DllImport dient zum Importieren einer Funktion, die in einer DLL enthalten ist, die nicht von .NET verwaltet wird. Die using-Anweisungen dienen dazu, dass Ihr Code leicht auf andere .NET-Assemblies verweisen kann, ohne den vollständig qualifizierten Namen zu verwenden.

    
Frank Hale 11.03.2011 13:16
quelle

Tags und Links