Зміст:
Визначення - Що означає атрибут DllImport?
Атрибут DllImport - це декларативний тег, який використовується в C # для позначення методу класу як визначеного у зовнішній бібліотеці динамічних посилань (DLL), а не в будь-якій збірці .NET.
Атрибут DllImport використовується під час виконання для виклику функції, експортованої у зовнішній DLL, реалізованої з некерованим кодом, який виконується поза контролем загальної мови виконання (CLR). Він також використовується для вказівки іншої інформації, необхідної під час виклику такої функції, як конвенція виклику, тип перетворення параметрів, переданих між керованим та некерованим кодом тощо. DLL та записується на C або C ++.
DllImport корисний у ситуаціях, коли функціональність керованої програми, код якої виконується CLR, може бути розширена лише шляхом доступу та повторного використання функціональності інтерфейсу програмування Win32 (API) та інших визначених користувачем некерованих кодів, що реалізуються в DLL. Це дозволяє заощадити зусилля на розробці та використати існуючий надійний та добре перевірений код без повторного винаходиння колеса в керованій програмі. Зазвичай він потрібен під час використання DLL-файлів, які не можна переписати, але мають можливість змінювати.
Техопедія пояснює атрибут DllImport
Атрибут DllImport - оператор декларації для експортованої функції, яку потрібно викликати з керованої програми. Він не може бути використаний для функції члена, яка вимагає екземпляр класу. Він задається під час проектування в квадратних дужках до оголошення способу, для якого він застосовується. Перед оголошенням функції необхідно використовувати рядок "extern".
Наприклад, атрибут DllImport може бути використаний у додатку Windows Forms, який є керованою програмою для виклику методу компонентної компоненти об'єктної моделі (код якої не управляється) для виконання деяких обчислень.
Він призначений для імпорту традиційних DLL-файлів, які експортують свої функції за допомогою оригінального механізму експорту DLL Windows. Він не призначений для використання коду в керованій збірці (як DLL), на який можна посилатися безпосередньо в проекті керованої програми.
Атрибут DllImport використовує InteropServices CLR, який виконує виклик з керованого коду до некерованого коду. Він також інформує компілятора про місце реалізації функції, що використовується. Коли викликається некерована функція обгортки з цим атрибутом у керованому коді, CLR знаходить і завантажує необхідну DLL. Це маршали (перетворює параметри відповідно до специфікації) і повертає назад некерований код після виконання, разом з правильним перетворенням параметрів.
Під час використання атрибута DllImport слід обережно використовувати правильну назву DLL та експортовану функцію, оскільки помилки друку можуть виникати в місцях, де їх неможливо легко виявити.
