Domanda

Ci sono molti Win32 API chiamate / librerie come kernel32 o shell32 che possono essere utili da chiamare C#. Un metodo comune per usarli è cercare la definizione del metodo su pinvoke.net Sito Web e utilizzando la definizione Dllimport da lì.

Questo processo è richiesto per ogni metodo che desideri utilizzare.

Ci sono assiemi disponibili che contengono comuni / la maggior parte [DllImport]funzioni API ED?

Sto cercando qualcosa che posso usare direttamente da C# (come riferimento), quindi non devo raccogliere e combinare da solo tutti i tipi di dichiarazioni dllimport (con rischio di errori).

È stato utile?

Soluzione

Che conosco, non esiste un pacchetto di codice molto noto che avvolge l'API di Windows per .NET; Ho potuto vedere che è utile in determinate circostanze, tuttavia, nella maggior parte dei casi, se devi usare così tanta API di Windows nativa, allora dovresti forse chiederti se stai utilizzando o meno il framework .NET correttamente e/o perché Usa .NET?

Indipendentemente dall'opinione di cui sopra, puoi trovare una fonte piuttosto completa delle definizioni a http://pinvoke.net/.

Altri suggerimenti

Dovresti trovare Qui su pinvoke.net cosa stai cercando. In realtà non c'è niente di più "dietro le quinte" che potrebbe essere spedito nel codice sorgente C# rispetto alle semplici clausole di importazione DLL.

Non è così che funziona, fornisci solo la dichiarazione [dllimport] nel codice C#. Proprio nel modo in cui li troveresti su pinvoke.net o su uno strumento come l'assistente interop P/invochi. Scoprire come utilizzare effettivamente la funzione API richiede lo studio del codice C o C ++. E in generale capire come funziona l'API di Windows.

Il posto migliore per iniziare con quello è il libro fondamentale di Petzold "Programming Windows". È possibile trovare campioni di codice sorgente in C/C ++ nella documentazione SDK di Windows e molti campioni inclusi nella versione completa dell'SDK. E il web ovviamente, solo cercando il nome della funzione. Un po 'ironia della sorte, il numero di campioni che troveresti sul web in questi giorni che sono scritti in una lingua gestita iniziano a superare i campioni C/C ++. Fai attenzione alle dichiarazioni VB6 (Dichiarare la parola chiave), anche ampiamente disponibili, i suoi tipi non sono compatibili con .NET.

Siti come CodePlex.com e CodeProject.com sono un buon posto per trovare librerie con involucri di classe gestiti intorno alle chiamate API native. Normalmente useresti semplicemente la libreria.

Ultimo ma non meno importante, stackoverflow.com è una risorsa eccellente;)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top