Bonjour a tous,
J'ai l'erreur suivante lorsque j'execute mon projet:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Excepción no controlada del tipo 'System.Threading.ThreadStateException' en system.windows.forms.dll Información adicional: No se puede crear una instancia del control ActiveX '9bd6a64b-ce75-11d1-af04-204c4f4f5020' porque el subproceso actual no está en un apartamento de un solo subproceso.Je m explique: j ai un windows form, qui instancie un composant ActiveX - c est a ce moment que l exception est lancee.Traduction approx. => Exception non controle du type: 'System.Threading.ThreadStateException' dans system.windows.forms.dll
Information aditionel: Impossible de creer une instance du controle ActiveX -...- parceque le subprocess actuel n est pas dans un apartement d un subprocess unique.
D apres l erreur, et la doc, il est precise qu un composant ActiveX peut seulement etre lance dans un appartement State STA, or le formulaire se lance de la maniere suivante:
Or lorsque j execute L appartment State contient MTA!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { System::Threading::Thread::CurrentThread->ApartmentState = System::Threading::ApartmentState::STA; // if(System::Threading::Thread::CurrentThread->ApartmentState == System::Threading::ApartmentState::MTA) { // return -1; // } Application::Run(new Form1()); return 0; }
Pas cool! Et bien entendue imposible de modifier l-appartement state lorsqu il a deja ete initialise
D autre part j ustilise un certain nombre de librairie. Je pense que le probleme doit venir du fait que mes librairies se charge d initialiser mon apartement state avec un qui soit compatible.
Comment faire pour initialiser un apartement State STA avant qu il ne le soit automatiquement, tout en utilisant mes librairies.
Merci d avance
Partager