표준 win32 dll로 제어되는 장치가 있습니다. 장치 응답은 응용 프로그램 창 핸들을 통해 다시 전송됩니다 (연결될 때 필요함). 지금 당장은 메시지를 살펴 봐야하는 유일한 방법은 양식 내부의 WndProc를 재정의하는 것입니다.이 방법은 상당히 제한적입니다.C에서 DLL의 메시지를들을 수있는 방법 #
원래 내 의도는 dll 내에 모든 것을 배치하여 응용 프로그램에서 장치 베어 처리를 가능하면 많이 분리하려고했지만이 종속성으로 인해 나를 달성하지 못하게되었습니다.
양식 (a la WndProc)이 아닌 dll에서받은 메시지를 들여다 볼 수있는 후크가 필요합니다. 내가 본 모든 것은 dll이 아닌 동일한 형식에서 후크를 보여줍니다.
오, 그건 그렇고, 후크는 WPF와도 호환된다는 것을 이해합니다. 여기에는 요구 사항도 있습니다.
의견을 보내 주시면 감사하겠습니다.
아니, 그렇게하는 방법입니다. 확실히 DLL에 양식 인스턴스를 만들 수있는 이유는 없습니다. 그리고 폼 클래스는 다른 .NET 클래스와 마찬가지로 단순한 클래스입니다. 장치 코드에서 찾을 수있는 한 시각적 창 일 필요는 없습니다. –
여기에 문제가 있습니다. 장치가 창을 응용 프로그램의 기본 폼이라면 장치는 메시지를 보냅니다. Application.Run을 사용하여 만들거나 ShowDialog를 사용하여 표시해야합니다. 따라서 숨기거나 만들거나 내부에서 파생시킬 수 없습니다 클래스. 난 wndprc를 사용하여 그것을 시도하고 메시지가 단순히 표시가 중단되었습니다. 아, 그런데 IMessageFilter를 시도해 보았습니다. 특별한 이유없이 몇 가지 메시지를 건너 뛰었습니다. –