Looking for c# Keywords? Try Ask4Keywords

C# Language Функция импорта из неуправляемой библиотеки C ++


пример

Вот пример того, как импортировать функцию, определенную в неуправляемой DLL C ++. В исходном коде C ++ для «myDLL.dll» определена функция add :

extern "C" __declspec(dllexport) int __stdcall add(int a, int b)
{
    return a + b;
}

Затем он может быть включен в программу C # следующим образом:

class Program
{
    // This line will import the C++ method.
    // The name specified in the DllImport attribute must be the DLL name.
    // The names of parameters are unimportant, but the types must be correct.
    [DllImport("myDLL.dll")]
    private static extern int add(int left, int right);

    static void Main(string[] args)
    {
        //The extern method can be called just as any other C# method.
        Console.WriteLine(add(1, 2));
    }
}

См. « Соглашения о __stdcall extern "C" и « __stdcall C ++» для объяснения причин, по которым необходимы extern "C" и __stdcall .

Поиск динамической библиотеки

При первом вызове метода extern программа C # будет искать и загружать соответствующую DLL. Для получения дополнительной информации о том, где искать, найти DLL, и как вы можете влиять на места поиска, см. Этот вопрос в stackoverflow .