0
我正在調試一個32位端口到64位平臺。有一個錯誤會導致其中一個窗口沒有正確響應64位版本的消息。所以我將它們並排運行並試圖在它們上使用Spy ++。Spy ++ 32和64位不允許同時運行。爲什麼?
原來,你不能在64位應用程序上使用Spy ++ 32,反之亦然。同樣,你不能同時運行Spy ++ 32和64位版本。
這是怎麼一回事,我該如何解決這個問題。是否有可以攔截32位和64位版本的消息的等價物?
我正在調試一個32位端口到64位平臺。有一個錯誤會導致其中一個窗口沒有正確響應64位版本的消息。所以我將它們並排運行並試圖在它們上使用Spy ++。Spy ++ 32和64位不允許同時運行。爲什麼?
原來,你不能在64位應用程序上使用Spy ++ 32,反之亦然。同樣,你不能同時運行Spy ++ 32和64位版本。
這是怎麼一回事,我該如何解決這個問題。是否有可以攔截32位和64位版本的消息的等價物?
間諜使用消息掛鉤來攔截消息。消息掛鉤必須位於DLL中,並且不能將32位DLL加載到64位進程中(反之亦然)。至於不能同時運行兩個版本,我懷疑這是因爲鉤子DLL使用相同的方法發送到應用程序,所以你只能運行一個應用程序。
實現一個攔截器將是非常困難的,原因有二:
SetWindowsHookEx
不允許32位應用程序設置在64位進程(反之亦然)掛鉤,所以你需要兩個exes(和兩個dll)來實現這一點,以及一些IPC機制來將結果傳遞給一個通用主機;
換句話說,Spy ++ 32和64位使用的DLL是同一個嗎?嗯,似乎這是一個執行錯誤。 – Adrian
@Adrian不,Spy對32位和64位進程使用單獨的DLL。 –
然後,爲什麼會同時運行兩個問題? – Adrian