Ответ 1
C Библиотеки, скомпилированные для Windows, можно вызывать из С# с помощью Invoke платформы.
Из MSDN синтаксис вызова функции C выглядит следующим образом:
[DllImport("Kernel32.dll", SetLastError=true)]
static extern Boolean Beep(UInt32 frequency, UInt32 duration);
Вышеупомянутая функция вызывает Beep в Kernel32.dll, передавая частоту и длительность аргументов. Более сложные вызовы возможны в строках и указателях на массивы, возвращаемые значения и т.д.
Вам нужно будет убедиться, что функции C, доступные библиотеке C, экспортированы соответствующим образом, например. функция Beep, скорее всего, будет объявлена следующим образом:
#define DllExport __declspec( dllexport )
DllExport bool Beep(unsigned int frequency, unsigned int duration)
{
// C Body of Beep function
}