SetClipboardData第二个参数为什么不能直接用程序定义好的字符串指针
而用内存管理函数分配的的指针就可以呢?
------解决方案--------------------------------------------------------
HANDLE SetClipboardData( UINT uFormat,HANDLE hMem);
你调用代码是什么?后者不是point而是一个内存句柄。
------解决方案--------------------------------------------------------
用invoke GlobalAlloc,GMEM_FIXED,sizeof szDest + 1
返回的是个指向内存首地址的指针。我用这个指针没有问题啊
------解决方案--------------------------------------------------------
.386
.model flat,stdcall
option casemap:none
include user32.inc
include kernel32.inc
include windows.inc
includelib user32.lib
includelib kernel32.lib
.data
hMemory dd ?
.const
szDest db '这里的内容来自“剪切板操作api.exe”执行的结果',0
szCaption db 'ok',0
szText db '请右键粘贴!',0
szFormat db '%s',0
.code
start:
invoke OpenClipboard,NULL
invoke EmptyClipboard
invoke GlobalAlloc,GMEM_FIXED,sizeof szDest + 1
mov hMemory,eax
invoke wsprintf,hMemory,offset szFormat,offset szDest
invoke SetClipboardData,CF_TEXT,hMemroy
invoke wsprintf,offset szBuffer,offset szFormat1,hMemory
invoke CloseClipboard
invoke MessageBox,NULL,offset szText,offset szCaption,MB_OK
invoke ExitProcess,NULL
end start