Windows - статьи

Стартовая функция


Основной задачей стартовой функции является запуск процесса регистрации remoting-объекта.

Стартовая функция реализуется на управляемом коде в рамках старого проекта, но она должна вызываться из неуправляемого кода - из точки регистрации remoting-объекта. Чтобы не нарушать старый проект, код стартовой функции разместим в отдельном модуле (файлы StarterRmt.h и StarterRmt.cpp). В h-файле StarterRmt.h будут присутствовать #include только неуправляемых модулей (описание класса методов бизнес-логики из старого приложения на неуправляемом коде), а управляемые модули (h-файлы управляемого класса-обертки и «Класса регистрации remoting-объекта»)  будут подключены уже в cpp-файле. В итоге код стартовой функции на С++/CLI в рассматриваемом примере будет иметь такой вид:

  // StarterRMT.h // стартовая функция   #include "MFC_2Dlg.h"  //описание бизнес-логики   //Стартовая функция. Входной параметр - существующий объект бизнес-логики void StarterRMT(CMFC_2Dlg* pDialog);

//StarterRMT.cpp // стартовая функция   #include "StarterRMT.h" #include "mngCover.h"  //Управляемый класс-обертка для неуправляемых методов #include "Rmt_reg.h"   //Класс регистрации remoting-объекта   //Стартовая функция. Входной параметр - существующий объект бизнес-логики void StarterRMT (CMFC_2Dlg* pDialog) {         //Управляемый класс-обертка для неуправляемых методов         CMngCover^ mm_MngCover; //описание         mm_MngCover = gcnew CMngCover(pDialog); //создание           //класс регистрации и иницилизации remoting-объекта         Rmt_reg::CRmtReg^ mm_RmtReg; //описание         mm_RmtReg = gcnew Rmt_reg::CRmtReg(mm_MngCover); //создание и регистрация }  

Как было уже сказано, модуль стартовой функции собирается в режиме управляемого кода поэтому для него необходимо выполнить настройки, приведенные в разделе «Модули на С++/CLI в проекте С++», кроме того, для него может потребоваться отключить использование прикомпилированных заголовков.



Содержание раздела