Remoting - объект
Любой remoting-объект должен быть реализован на управляемом коде, поэтому создадим в VS новый проект типа «CLR Class library для С++» и назовем его, например, Rmt_obj.
В старой бизнес-логике рассматриваемого примера имеется два метода, и для каждого из них в remoting-объекте должны быть объявлены по одному
Кроме того, класс remoting-объекта должен быть наследником MarshalByRefObject, что указывается в его описании.
Таким образом, получается следующий код на C++/CLI для remoting-объекта рассматриваемого примера:
// Rmt_obj.h //объект REMOTING #pragma once using namespace System; namespace Rmt_obj { public ref class CRmtngObj : MarshalByRefObject { public: // Для метода method_PutStr. delegate void dlg_method_PutStr(String^ str); event dlg_method_PutStr^ ev_method_PutStr; void mtd_method_PutStr(String^ str); // Для метода method_GetStr. delegate String^ dlg_method_GetStr(); event dlg_method_GetStr^ ev_method_GetStr; String^ mtd_method_GetStr(); }; }
// Rmt_obj.cpp //объект REMOTING // This is the main DLL file. #include "stdafx.h" #using <mscorlib.dll> #include "Rmt_obj.h" namespace Rmt_obj { //Для метода method_PutStr void CRmtngObj::mtd_method_PutStr(String^ str) { ev_method_PutStr(str); } // Для метода method_GetStr String^ CRmtngObj:: mtd_method_GetStr() { return ev_method_GetStr(); } }
Приведенный код может быть скомпилирован в Rmt_Obj.dll - объект remoting.