Добавить следующие изменения:Как создать обработчик
Emily::oSeMac^ Terminal;
Emily::AsyncSocketController^ _socketManager;
delegate void DataArrival(String^, array<unsigned char, 1>^, System::Net::IPEndPoint^);
void _socketManager_onDataArrival(String^ SocketID, array<unsigned char, 1>^ SocketData, System::Net::IPEndPoint^ RemoteIP)
{
System::Object^ retData = Terminal->WhoCame (SocketID, SocketData, RemoteIP, _socketManager, 0);
}
Form1(void)
{
InitializeComponent();
_socketManager = gcnew Emily::AsyncSocketController(2000);
_socketManager->onDataArrival += gcnew DataArrival(this, &AC_WebPassManager::Form1::_socketManager_onDataArrival);
_socketManager->Start();
Terminal = gcnew Emily::oSeMac();
}
Ошибка Ошибка C2664: 'Emily :: AsyncSocketController :: onDataArrival :: добавить': не удается преобразовать параметр 1 из 'AC_WebPassManager :: Form1 :: DataArrival^to 'Emily :: AsyncSocketController :: onDataArrivalEventHandler ^' 1> Нет доступных операторов с пользовательским преобразованием, или 1> Указанные типы не связаны; преобразование требует reinterpret_cast, приведение в стиле С или функция стиля бросание 1>
ОК, я меняю код Emily :: oSeMac^Terminal; Emily :: AsyncSocketController^_socketManager; public: delegate DataArrival (String ^, массив ^, System :: Net :: IPEndPoint ^); недействительным _socketManager_onDataArrival (String^SocketID, массив <символ без знака, 1>^SocketData, System :: Net :: IPEndPoint^RemoteIP) \t \t { System :: Object^retData = Terminal-> WhoCame (SocketID, SocketData, RemoteIP , _socketManager, 0); \t \t} –
user372145
Form1 (пустоты) \t \t { \t \t \t InitializeComponent(); \t \t \t _socketManager = gcnew Emily :: AsyncSocketController (2000); \t \t \t _socketManager-> onDataArrival + = gcnew DataArrival (this, & AC_WebPassManager :: Form1 :: _ socketManager_onDataArrival); \t \t \t _socketManager-> Start(); \t \t \t Terminal = gcnew Emily :: oSeMac(); \t \t} – user372145
Ошибки 1> d: \ projects \ ac_webpassmanager \ ac_webpassmanager \ Form1.h (36): ошибка C2146: синтаксическая ошибка: отсутствует ';' перед идентификатором 'DataArrival' 1> d: \ projects \ ac_webpassmanager \ ac_webpassmanager \ Form1.h (36): ошибка C4430: отсутствует спецификатор типа - int. Примечание: C++ не поддерживает default-int 1> d: \ projects \ ac_webpassmanager \ ac_webpassmanager \ Form1.h (36): ошибка C4430: отсутствует спецификатор типа - int. Примечание: C++ не поддерживает default-int 1> d: \ projects \ ac_webpassmanager \ ac_webpassmanager \ Form1.h (36): – user372145