第十章动态链接库编程(二).docVIP

  • 1
  • 0
  • 约6.54千字
  • 约 11页
  • 2016-08-22 发布于重庆
  • 举报
第十章动态链接库编程(二)

10.3.2.2 服务器程序的编写    服务器程序必须包含对DLL的调用代码,如:  function GetGlobalMem: THandle; far; external c:\dlls\glbmem;   通过调用该函数,服务器可以获得全局内存块的句柄。   在写入数据前,服务器必须锁定全局内存,以避免在写入过程中Windows移动该内存块的位置。   函数GlobalLock锁定全局内存并返回指向该内存块的指针:  pMem := GlobalLock(hMem);   对pMem的任何修改都会反映到全局内存块中。   对内存块进行操作后,调用GlobalUnLock进行解锁。内存块操作之后尽早解锁,有利于Windows充分利用内存资源。   服务器写入数据的实现代码如下。  var hMem: THandle; pMem: PChar; begin hMem := GetGlobalMem; {获得全局内存块的句柄} if hMem 0 then begin pMem := GlobalLock(hMem); {加锁全局内存块} if pMem nil then begin StrPCopy(pMem,Memo1.text); {向全局内存块写入数据} GlobalUnlock(hMem); {解锁全局内存块} end else MessageDlg(Could

文档评论(0)

1亿VIP精品文档

相关文档