2012-02-01 15 views

risposta

13

librerie C compilati per Windows può essere chiamato da C# utilizzando Platform Invoke.

Da MSDN, la sintassi di fare una chiamata di funzione C è la seguente:

[DllImport("Kernel32.dll", SetLastError=true)] 
static extern Boolean Beep(UInt32 frequency, UInt32 duration); 

Quanto sopra chiama la funzione Beep in Kernel32.dll, passando nella frequenza argomenti e durata. Chiamate più complesse sono possibili il passaggio di strutture e puntatori a matrici, valori di ritorno ecc ...

È necessario assicurarsi che le funzioni C disponibili dalla libreria C siano exported appropriately, ad es. la funzione Beep è probabilmente dichiarata in questo modo:

#define DllExport __declspec(dllexport) 
DllExport bool Beep(unsigned int frequency, unsigned int duration) 
{ 
    // C Body of Beep function 
}