请教个在同一API中有两个句柄的问题:(5分)

  • 主题发起人 主题发起人 netbug
  • 开始时间 开始时间
N

netbug

Unregistered / Unconfirmed
GUEST, unregistred user!
请看:<br>HWND GetWindow(<br>&nbsp; &nbsp; HWND hWnd, // handle of original window<br>&nbsp; &nbsp; UINT uCmd // relationship flag<br>&nbsp; &nbsp;);<br>与<br>HANDLE CreateFileMapping(<br>&nbsp; &nbsp; HANDLE hFile, // handle to file to map <br>&nbsp; &nbsp; LPSECURITY_ATTRIBUTES lpFileMappingAttributes, // optional security attributes <br>&nbsp; &nbsp; DWORD flProtect, // protection for mapping object <br>&nbsp; &nbsp; DWORD dwMaximumSizeHigh, // high-order 32 bits of object size &nbsp;<br>&nbsp; &nbsp; DWORD dwMaximumSizeLow, // low-order 32 bits of object size &nbsp;<br>&nbsp; &nbsp; LPCTSTR lpName // name of file-mapping object <br>&nbsp; &nbsp;);<br>在以上两个API函数中,每个函数中都有个句柄的参数,并函数的返回值也<br>都是句柄,我想问:<br>一:在GetWindow函数中,用句柄作参数的是指什么句柄?是不是任一个<br>窗体句柄都可以作参数?如不是,它必须用什么句柄作参数?<br>二:在CreateFileMapping函数中,句柄参数与返回值句柄有什么不同?<br>它好象都是指文件句柄,如不是,它们分别是什么?<br>谢谢.<br><br><br>
 
参数的句饼应该是调用这个函数的窗子的句并,不知道对不对?
 
哈哈,可怜的netbug一定是被微软的这些handle搞迷糊了。<br>虽然都叫做handle,但是意义完全不同。但是有一点是相同的,那就是handle都是一个整数<br>1。handle是hWnd<br>2。参数是你打开的文件的handle,可以用来读写文件。返回的是FileMapping Object的<br>&nbsp; &nbsp;handle,常用hMap,可以被其他的FileMapping相关的函数使用
 
还是不理解,能否再说的详细一些
 
1 的handle是指源窗体的handle, 就是所谓original window.<br>具体说就是第二个参数作用对象. 比如: <br><br>&nbsp; &nbsp;h:=GetWindow(GetDesktopWindow, GW_HWNDFIRST);<br><br>就可以得到当前处于桌面上最上端的窗口的handle.又比如:<br><br>&nbsp; &nbsp;h:=GetWindow(self.Handle, GW_CHILD);<br><br>可以得到所有的自己程序创建的子窗口.<br><br><br>2 的handle是文件的handle, 就是说对哪个文件做FileMapping.<br>这个handle是由CreateFile来得到的.
 
时间太久,强制结束。 &nbsp; wjiachun
 
后退
顶部