Создание библиотеки DLL на C++

Помечено: ,

  • В этой теме 0 ответов, 1 участник, последнее обновление 3 месяца, 2 недели назад сделано Васильев Владимир Сергеевич.
Просмотр 0 веток ответов
  • Автор
    Сообщения
    • #6552
      @admin
      StudLance.ru

      В этой заметке рассказывается как создать простую DLL-библиотеку, а затем — подключить ее к своей программе.

      Запускаем Visual Studio и создаём проект библиотеки DLL, назовём его myDLL. Добавляем в проект новый файл myDLL.h, поместим в него следующий код:

      #ifdef MYDLL_EXPORTS
      #define MYDLL_API __declspec(dllexport) 
      #else
      #define MYDLL_API __declspec(dllimport) 
      #endif
      
      class MyDLL
      {
      public: 
      	// Returns a + b
      	static MYDLL_API int testSumma(int a, int b); 
      };

      Теперь найдём в проекте файл myDLL.cpp и заменим его код следующим:

      #include "stdafx.h"
      #include "myDll.h"
      #include <stdexcept>
      
      using namespace std;
      
      int MyDLL::testSumma(int a, int b) {
      	return a + b;
      }

      Библиотека из одной функции готова, но вы можете добавить туда другие функции. Попробуем использовать эту библиотеку в другом проекте.

      В Visual Studio создайте консольное приложение testMyDLL, снимите флажочек Precompiled header. Для использования в приложении функций, созданных в библиотеке DLL, необходимо сослаться на эту библиотеку. В свойствах проекта выберите Common Properties->References, добавьте новую ссылку на myDLL, нажав кнопку «Add New Reference…».

      Не забудьте прописать путь к файлу myDLL.h из предыдущего проекта библиотеки DLL.

      Замените кода файла testMyDLL.cpp следующим:

      #include <iostream>
      #include "myDll.h"
      using namespace std;
      
      int main() {
        int a = 5;
        int b = 10;
      
        cout << "a = " << a << ", b = " << b << endl;
        cout << "a + b = " << MyDLL::testSumma(a, b) << endl;
      	
        getchar();
      }

      Запускаем приложение testMyDLL и смотрим результат:

      a = 5, b = 10
      a + b = 15

      StudLance.ru

Просмотр 0 веток ответов
  • Для ответа в этой теме необходимо авторизоваться.
×