타사 비 Qt Windows 응용 프로그램과 통합해야하는 DLL에 Qt 응용 프로그램이 있습니다. 필자는 타사 응용 프로그램을 소유하고 있지 않으므로 핵심 이벤트 처리 메커니즘을 변경할 수 없습니다 (일부 경우 소스가 없음). 이 일을하는 가장 좋은 방법은 무엇입니까?타사 응용 프로그램 내 Qt 플러그인 응용 프로그램
QtWinMigrate 프레임 워크를 시도했지만 CWinApp :: Run을 변경할 수 있습니다. 수행 할 수 없습니다. QApplication을 작성하고 exec()를 호출하면 두 번째 이벤트 루프가 작성됩니다. 이러한 종류의 작업, 그러나 비 Qt 응용 프로그램 이벤트 중 일부는 이제 불가사의하게 사라집니다 (예 : 툴팁 및 키보드 명령이 작동을 멈춤).
의견을 보내 주시면 감사하겠습니다. 감사.
의견에 감사드립니다. 나는 이것을 조사해 내 예제 애플리케이션에서 작동했다. (QApplication 대신 QAbstractEventDispatcher 인스턴스에 필터를 설정해야했지만). 말할 필요도없이 프로덕션 환경이 훨씬 더 복잡해졌고 별도의 스레드에서 2 개의 이벤트 루프를 실행해야만했습니다 (2 개의 응용 프로그램 사이의 통신에주의를 기울여야합니다!). 감사. – Robin
@Robin 전혀 없습니다. 새로운 Qt 코드를 MFC 레거시 애플리케이션과 통합하는 방법도 다루었습니다. 이런 종류의 솔루션의 문제점은 단일 이벤트 루프처럼 Qt 전제를 위반하고 매우 미묘하고 추적하기 어려운 버그를 생성 할 수 있다는 것입니다. 어쨌든 현실 세계의 문제는 현실 세계의 해결책을 필요로합니다. 행운을 빕니다 :) –