2012-02-01 2 views

ответ

13

C библиотеки, скомпилированные для Windows, можно вызвать из C# с помощью Platform Invoke.

С MSDN, синтаксис делает вызов функции C выглядит следующим образом:

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

выше вызывает функцию Beep в Kernel32.dll, проходя по частоте аргументы и продолжительности. Возможны более сложные вызовы в структурах и указателях на массивы, возвращаемые значения и т. Д.

Вам необходимо убедиться, что функции C, доступные библиотеке C, равны exported appropriately, например. функция Beep может быть объявлена ​​следующим образом:

#define DllExport __declspec(dllexport) 
DllExport bool Beep(unsigned int frequency, unsigned int duration) 
{ 
    // C Body of Beep function 
} 
Смежные вопросы