读书人

SetClipboardData为啥不能直接用指针

发布时间: 2012-12-17 09:31:40 作者: rapoo

SetClipboardData为什么不能直接用指针
SetClipboardData第二个参数为什么不能直接用程序定义好的字符串指针
而用内存管理函数分配的的指针就可以呢?
[解决办法]
HANDLE SetClipboardData( UINT uFormat,HANDLE hMem);
你调用代码是什么?后者不是point而是一个内存句柄。
[解决办法]
用invokeGlobalAlloc,GMEM_FIXED,sizeof szDest + 1
返回的是个指向内存首地址的指针。我用这个指针没有问题啊
[解决办法]
.386
.model flat,stdcall
option casemap:none

includeuser32.inc
includekernel32.inc
includewindows.inc
includelibuser32.lib
includelibkernel32.lib

.data
hMemorydd?
.const

szDestdb'这里的内容来自“剪切板操作api.exe”执行的结果',0
szCaptiondb'ok',0
szTextdb'请右键粘贴!',0
szFormatdb'%s',0

.code

start:
invokeOpenClipboard,NULL
invokeEmptyClipboard

invokeGlobalAlloc,GMEM_FIXED,sizeof szDest + 1
mov hMemory,eax
invokewsprintf,hMemory,offset szFormat,offset szDest

invokeSetClipboardData,CF_TEXT,hMemroy

invokewsprintf,offset szBuffer,offset szFormat1,hMemory
invokeCloseClipboard
invokeMessageBox,NULL,offset szText,offset szCaption,MB_OK
invokeExitProcess,NULL
endstart

读书人网 >汇编语言

热点推荐