Salve a tutti, sono nuovo del forum e ho un problema abbastanza complicato (per me). Sviluppo in C++ da svariati anni e mi sto avvicinando al .NET Framework 2.0 da poco tempo, ovviamente usando managed C++.
Sto sviluppando un progetto modulare, ovvero delle Class Library (DLL) le quali fanno da 'manager' per il loro scopo applicativo.
Ad esempio, ho un gestore di connessioni MySQL tramite Odbc all'interno di una dll, e vorrei fare il binding dell'evento InfoMessage del namespace System::Data::Odbc su di un gestore di evento definito all'interno di una WinForm...
Sto facendo così ma non penso sia la strada giusta:
[Codice Form1 principale, dove verrà gestito l'evento proveniente dalla Class Library]
CDBManager ^ DBManager = gcnew CDBManager("", "", "", "", &MysqlNET::Form1::DBInfoMessage);
..
private: void DBInfoMessage(Object ^ Sender, OdbcInfoMessageEventArgs ^ e) // Gestore dell'evento
{
...
}
L'errore che il compilatore mi dà è il seguente:
error C3374: can't take address of 'MysqlNET::Form1::DBInfoMessage' unless creating delegate instance
Ho intuito che dovrei usare un delegato, ma non ho capito come. E' possibile fare quello che mi sono proposto ? Cioè gestire un evento in una WinForm nonostante questo evento venga generato in una Class Library e passare il gestore di questo tramite parametro sul costruttore della Class Library ?
Grazie anticipatamente.