Wohin mit DllImport?

8
%Vor%

Wo gebe ich [DllImport("Kernel32.dll")] hin?

    
randall Z 20.05.2011, 19:27
quelle

3 Antworten

13

Sie setzen es auf die Methode, die Sie von Kernel32.dll importieren.

Zum Beispiel

%Vor%

Von @ dtb : Beachten Sie, dass die Klasse den Namen NativeMethods , SafeNativeMethods oder UnsafeNativeMethods haben sollte. Weitere Informationen finden Sie unter Benennungskonvention für nicht verwaltete Codemethoden .

CA1060: P / Invokes in NativeMethods-Klasse verschieben :

  
  • NativeMethods - Diese Klasse unterdrückt Stackwalks nicht für die Berechtigung für nicht verwalteten Code. (System.Security.SuppressUnmanagedCodeSecurityAttribute darf nicht auf diese Klasse angewendet werden.) Diese Klasse ist für Methoden vorgesehen, die überall verwendet werden können, da ein Stack-Walk ausgeführt wird.

  •   
  • SafeNativeMethods - Diese Klasse unterdrückt Stackwalks für die Berechtigung für nicht verwalteten Code. (System.Security.SuppressUnmanagedCodeSecurityAttribute wird auf diese Klasse angewendet.) Diese Klasse ist für Methoden vorgesehen, die für jeden Benutzer sicher sind. Anrufer dieser Methoden müssen keine vollständige Sicherheitsüberprüfung durchführen, um sicherzustellen, dass die Verwendung sicher ist, da die Methoden für jeden Anrufer ungefährlich sind.

  •   
  • UnsafeNativeMethods - Diese Klasse unterdrückt Stackwalks für die Berechtigung für nicht verwalteten Code. (System.Security.SuppressUnmanagedCodeSecurityAttribute wird auf diese Klasse angewendet.) Diese Klasse ist für potenziell gefährliche Methoden vorgesehen. Jeder Aufrufer dieser Methoden muss eine vollständige Sicherheitsüberprüfung durchführen, um sicherzustellen, dass die Verwendung sicher ist, da kein Stack-Walk ausgeführt wird.

  •   
    
Adam Lear 20.05.2011 19:30
quelle
6

Dies ist ein Beispiel für DllImport :

%Vor%

Ich empfehle Ihnen, Platform Invoke Tutorial zu studieren.

    
Alireza Maddah 20.05.2011 19:33
quelle
1
%Vor%

Es geht um die Methode selbst, die externe Methoden aufruft. Stellen Sie sicher, dass Sie einen Verweis auf System.Runtime.InteropServices

hinzufügen     
BFree 20.05.2011 19:30
quelle

Tags und Links