Bonjour tout le monde,
Voila je voudrais utilisé un Timer dans du managé, afin de check de manière périodique le contenu d'un tableau qui est rempli dans du c++ natif.
La déclaration de mon pointeur se passe sans accroc, le problème est lorsque je donne à mon timer la fonction qu'il doit apelé lorsqu'il arrive à 0. Une première erreur était de ne pas donné l'adresse de cette fonction mais de la passé directement en paramètre (vs 2005 à crier, et ma donné la correction). Et là maintenant, j'ai une erreur assez surprenante..
Donc les deux signatures de méthodes sont a priori les mêmes mais VS2005 ne le voit pas comme ca...Error 1 error C3352: 'void CliWrapper::CliWrapperEigenvalues::t_Elapsed(System::Object ^,System::Timers::ElapsedEventArgs ^)' : the specified function does not match the delegate type 'void (System::Object ^,System::Timers::ElapsedEventArgs ^)' c:\users\paqueth\HerculeNew\Hercule.Presentation.UI.sln\Hercule.Business.Wrapper\CliWrapperEigenvalues.cpp 41
Déclaration et initialisation de mon Timer
Fonction qui doit être appelée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 System::Timers::Timer ^t = gcnew System::Timers::Timer(); t->Elapsed += gcnew Timers::ElapsedEventHandler(&CliWrapperEigenvalues::t_Elapsed); t->Interval = 1000; t->AutoReset = false; t->Start();
Si quelqu'un pouvait trouver le problème ca me ferait grandement plaisir
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 System::Void CliWrapperEigenvalues::t_Elapsed(Object^ sender, Timers::ElapsedEventArgs^ e) { }![]()
Partager