2013-03-25 208 views

回答

1

是的,它可以。對於GDI對象句柄和窗口句柄,可以保證在64位模式下只使用低32位,因此在32位和64位之間傳遞這些數據應該是安全的。當然,COM服務器必須沒有進程。

this page

引用在64位的Windows,一個過程外的32位COM服務器可以與一個64位的客戶端進行通信,和一個進程外-64位COM服務器可以與32位客戶端進行通信。因此,如果您有一個不支持COM的32位DLL,則可以將其封裝在一個進程外COM服務器中,並使用COM封送來自64位進程的調用。視窗的

類似地,從this page

64位版本的使用32位處理對互操作性。在32位和64位應用程序之間共享句柄時,只有較低的32位是有意義的,因此可以安全地截斷句柄(將它從64位傳遞到32位時)或簽名擴展句柄(當它從32位傳遞到64位)。可以共享的句柄包括用戶對象(如窗口(HWND))的句柄,GDI對象(如鋼筆和畫筆(HBRUSH和HPEN))的句柄,以及指向對象(例如互斥鎖,信號量和文件句柄)的句柄。

相關問題