Используйте библиотеку C из кода C # - PullRequest
10 голосов
/ 01 февраля 2012

У меня есть библиотека на языке Си. Можно ли использовать его до диеза.

http://zbar.sourceforge.net/ - это ссылка на библиотеку, которую я хочу использовать

1 Ответ

14 голосов
/ 01 февраля 2012

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, экспортированы соответствующим образом , напримерфункция Beep, скорее всего, объявлена ​​так:

#define DllExport   __declspec( dllexport )
DllExport bool Beep(unsigned int frequency, unsigned int duration)
{
    // C Body of Beep function
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...