ActiveX et Appartement State initialisation
Bonjour a tous,
J'ai l'erreur suivante lorsque j'execute mon projet:
Code:
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. |
Citation:
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.
Je m explique: j ai un windows form, qui instancie un composant ActiveX - c est a ce moment que l exception est lancee.
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:
Code:
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;
} |
Or lorsque j execute L appartment State contient MTA!!!
Pas cool! Et bien entendue imposible de modifier l-appartement state lorsqu il a deja ete initialise :x
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