Часто перед .NET-програмістом виникає завдання: використовувати функціонал динамічної бібліотеки DLL, написаної іншим розробником, на некерованому коді. Часом функціонал цієї бібліотеки може бути вельми і вельми великий. Вручну прописувати у себе в проекті кожен клас, функції, константу і т. д. – дуже довго. На щастя, існують інструменти, частково автоматизують цей процес. Про одну з них ми і поговоримо.

PInvoker для Visual Studio

Вам знадобиться

  • – ПК з Visual Studio 2008/2010;
  • – інтернет.

Інструкція

1. Якщо у вас є динамічна бібліотека *.dll написана на некерованому коді, наприклад, на мові C або C++, а також її відмінності (header) файли і вам потрібно оголосити у вашому проекті цілу купу конструкцій з бібліотеки, то дуже хорошим рішенням для вас може стати інструмент PInvoker. PInvoker вільно поширюється у вигляді розширення для Visual Studio IDE (підтримуються версії 2005, 2008 і 2010), а також у вигляді окремого додатка.Робота з ним проста і зручна. PInvoker імпортує PInvoke визначення керованого коду на C# або VB.NET з файлів заголовків C/C++ і пов’язаної з ними бібліотеки DLL. Вам залишиться лише вибрати зі списку доступних функцій, структур, перерахувань, констант, делегатів та ін. необхідні і імпортувати в ваш проект.Для початку потрібно скачати і встановити PInvoker. Скачайте з офіційного сайту установник PInvoker.msi розширення PInvokerAddin.msi для Visual Studio. Думаю, з цим проблем виникнути не повинно. Просто запустіть файл і дотримуйтесь інструкцій.

2. Розглянемо на прикладі, як працювати з цим корисним інструментом. Запустіть Visual Studio, створіть новий проект. У меню Сервіс -> Інструменти з’явився новий пункт: PInvoker. Натисніть на нього, і відкриється вікно налаштувань PInvoker Addin. Виберіть мову вашого проекту Language: C# або VB.NET. У випадаючому списку Profiles виберіть edit profiles.

Редактирование профилей импорта PInvoker

3. Відкриється вікно ” керування профілями. Виберіть Create a new import profile і натисніть Next.

4. Тепер потрібно додати відмінності header-файли. Можете перетягнути їхньою мишею на вікно PInvoker Profiles Wizard. Далі вкажіть папку, де зберігаються файли.

Добавление файлов заголовков

5. На наступному кроці необхідно вказати саму динамічну бібліотеку. Її теж можете сміливо тягнути мишею на вікно майстра профілів PInvoker.

Добавление динамической библиотеки DLL

6. Після натискання на кнопку Finish почнеться процес імпорту визначень з обраної динамічної бібліотеки. Про успішне завершення операції буде свідчити напис Import successful і з’явився в лівому полі список назв функцій з DLL.

Завершение настройки профиля импорта PInvoke определений из DLL

7. Тепер ви можете з легкістю імпортувати PInvoke визначення в свій проект. У лівому полі (1), в полі Type виберіть тип: функція, процедура, структура, перерахування, константа, делегат і т. д. В полі Name виберіть назву потрібної конструкції. За одинарному кліку її опис з’явиться в центральному полі вікна PInvoker (2). За подвійним – відкриється її визначення в хедер-файлі. Натиснувши кнопку Insert definition (3), ви вставите визначення в свій проект C#/VB.NET. Тепер ви можете користуватися імпортованої функцією динамічної бібліотеки у своєму проекті.

Импорт PInvoke определений из DLL в проект Visual Studio

НАПИСАТИ ВІДПОВІДЬ

Please enter your comment!
Please enter your name here