看了精易模块11.1.0的剪辑版_置文本()源码,遇到了一个疑惑
就是GlobalAlloc ()申请了一块内存,将要放入剪辑版的文本,通过RtlMoveMemory()拷贝过去了
然后打开剪辑版、清除剪辑版、设置剪辑版数据、关闭剪辑版
没看到何时对剪辑版中的内存数据进行释放呀
我新建了一个例子,申请了1mb的文本,然后:剪辑板_置文本(),发现内存确实增加了1mb,没有被释放,继续重复置文本,内存也一直保持不变,内存没有一直增加上去,这是为啥呀,没看到有GlobalFree(hGlobalMemory) 释放内存的代码呀
变量名 | 类 型 | 静态 | 数组 | 备 注 | dwLength | 整数型 | | | hGlobalMemory | 整数型 | | | GHND | 整数型 | | | lpGlobalMemory | 整数型 | | | hWnd | 整数型 | | | i | 整数型 | | |
dwLength = 取文本长度 (要置的文本 )GHND = 2 hGlobalMemory = GlobalAlloc (GHND, dwLength + 1 )lpGlobalMemory = GlobalLock (hGlobalMemory )RtlMoveMemory_文本型 (lpGlobalMemory, 要置的文本, dwLength )GlobalUnlock (hGlobalMemory )hWnd = 窗口_取顶端窗口句柄 ()OpenClipboard (hWnd )EmptyClipboard ()SetClipboardData (1, hGlobalMemory ) CloseClipboard ()
|