У меня есть ситуация, когда мое приложение C# использует 32-битную и 64-разрядную библиотеки DLL при работе на 64-битной машине. Мой главный пользовательский интерфейс должен быть 64 бит, а дочерний диалог должен быть 32 бит. Чтобы решить эту проблему, я запускаю 32-битную версию приложения из 64-битной версии и жду, пока она выйдет. Я использую анонимные каналы, чтобы получить результаты дочернего диалога обратно в 64-битный процесс. Я передаю дескриптор родительского окна дочернему процессу, поэтому дочерний диалог из 32-битного процесса будет модальным для основного диалога в родительском процессе. Это работает очень хорошо, но проблема в том, что дочерний процесс закрывает родительское диалоговое окно в 64-битном процессе, получает сообщение WM_CLOSE, и приложение существует. Как я могу предотвратить это, сохраняя при этом диалоговое окно дочернего процесса в 32-битном процессе модально в родительском диалоговом окне в 64-битном процессе?Родительский диалог, получающий WM_CLOSE при выходе дочернего процесса
Если я не передаю обработчик родительского диалогового окна, приложение не закрывается.