#c #events #visual-studio-2017 #clr #managed-c
#c #Мероприятия #visual-studio-2017 #clr #управляемый-c
Вопрос:
В основном я работал над неуправляемым кодом, в последнее время для своей работы мне приходится использовать проекты на CLI / C . Некоторые файлы представляют собой неуправляемый код, поэтому при включении я использую #pragma managed(push, off)
, что я видел в полностью неуправляемых кодах, мы использовали event и deligate в классах Ref.
event someHandler^ someEvent;
public delegate void someHandler(ManagedCpp::sharedPtr<std::string> ^);
Но теперь мне нужно создать такой же механизм для сочетания управляемого и неуправляемого. Итак, поскольку я создавал этот класс представления модели как управляемый, я не могу включить его в неуправляемый класс.
Управляемый класс, в котором я буду игнорировать событие (события) и делегировать…
public delegate void someHandler(ManagedCpp::sharedPtr<std::string> ^);
class ModelView{
managedCpp::sharedPtr ^ memberPtr
public:
event someHandler^ someEvent;
ModelView(){
memberPtr= gcnew managedCpp::sharedPtr<std::string>
}
//some other functions
// a getter() to get the memberPtr
// a setter() to set the value of memberPtr
}
Итак, мне нужно включить этот класс в другие классы, некоторые из которых являются управляемыми, а другие — неуправляемыми.
Когда я включаю в управляемый класс, он выдает ошибку.
error C3821: 'memberPtr': managed type or function cannot be used in an unmanaged function
Не мог бы кто-нибудь, пожалуйста, помочь мне, как я могу решить эту возникшую проблему?