J'ai des problèmes avec mes contrôles .net ne pas être nettoyés correctement lorsqu'ils sont emballés pour une utilisation activeX.Quelle est la bonne façon pour un contrôle activeX (COM) de nettoyer lorsqu'il est fermé par son parent?
Le comportement par défaut laisse l'application du conteneur de test du SDK (TstCon32.exe) s'exécuter en tant que processus GUIless lorsque j'essaie de le fermer.
La solution de contournement que j'ai initialement trouvée via google consistait à remplacer WndProc et à appeler manuellement le Environment.Exit(0)
. Cela a fait TstCon32.exe pour fermer complètement; Cependant, il casse l'application où j'ai besoin d'avoir le contrôle hébergé. L'application est MDI et WM_DESTROY est envoyé lorsque la page contenant le contrôle est fermée, à quel point l'appel Environment.Exit(0)
souffle l'application entière. J'ai essayé Application.Exit()
comme alternative, mais cela laisse TstCon32 toujours en cours d'exécution invisiblement.
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
// WM_DESTROY
if (m.Msg == 2)
Environment.Exit(0);
}
J'ai un problème similaire. Avez-vous trouvé une solution? –
@Michael Stoll Je ne pense pas que je l'ai fait –