2013-03-25 155 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))的句柄,以及指向对象(例如互斥锁,信号量和文件句柄)的句柄。

相关问题