Навигация:
<< >> Оглавление Указатель
Текст С++

Полный исходный текст модели блока на языке C++. В этом примере создается и уничтожается личная область данных блока.

  #include <windows.h>
  #include <RdsDef.h>
  // Подготовка описаний сервисных функций
  
  #include <RdsFunc.h>

  //========== Главная функция DLL ==========
  int WINAPI ( /*hinst*/,
                           unsigned long reason,
                           void* /*lpReserved*/)
  { if(reason==DLL_PROCESS_ATTACH) // Загрузка DLL
      { // Получение доступа к функциям
        if(!GetInterfaceFunctions())
           // Сообщение: старая версия RDS
      }
    return 1;
  }
  //========= Конец главной функции =========

  //====== Класс личной области данных ======
  class TTest1Data
  { public:
      int IParam;      // Целый параметр
      double DParam;   // Вещественный параметр
      TTest1Data(void) // Конструктор класса
        { IParam=0; DParam=0.0;
          (L"Область создана",L"TTest1Data",MB_OK);
        };
      ~TTest1Data()	// Деструктор класса
        { (L"Область удалена",L"TTest1Data",MB_OK);};
  };
  //=========================================

  //============= Модель блока ==============
  extern "C" __declspec(dllexport)
    int RDSCALL Test1(int CallMode,
                      RDS_PBLOCKDATA BlockData,
                      LPVOID ExtParam)
  { TTest1Data *data;
    switch(CallMode)
      { case :    // Инициализация
          BlockData->BlockData=new TTest1Data();
          break;
        case : // Очистка
          data=(TTest1Data*)(BlockData->BlockData);
          delete data;
          break;
      }
    return ;
  }
  //=========================================


<< >> Оглавление Указатель