|
本帖最后由 981013 于 2015-7-25 14:43 编辑
啊哈C用的这个GCC还不支持memcpy_s,可以用memcpy代替,注意这两个函数的参数列表也是不同的。给出修改后的代码:
[mw_shl_code=c,true]#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <Windows.h>
int main(int argc, char * argv[])
{
HGLOBAL hMemory;
LPTSTR lpMemory;
char * content = "蓝雨麦郎版权所有"; // 待写入数据
int contentSize = strlen(content) + 1;
if(!OpenClipboard(NULL)) // 打开剪切板,打开后,其他进程无法访问
{
puts("剪切板打开失败");
return 1;
}
if(!EmptyClipboard()) // 清空剪切板,写入之前,必须先清空剪切板
{
puts("清空剪切板失败");
CloseClipboard();
return 1;
}
if((hMemory = GlobalAlloc(GMEM_MOVEABLE, contentSize)) == NULL) // 对剪切板分配内存
{
puts("内存赋值错误!!!");
CloseClipboard();
return 1;
}
if((lpMemory = (LPTSTR)GlobalLock(hMemory)) == NULL) // 将内存区域锁定
{
puts("锁定内存错误!!!");
CloseClipboard();
return 1;
}
memcpy(lpMemory, content, contentSize); // 将数据复制进入内存区域
GlobalUnlock(hMemory); // 解除内存锁定
if(SetClipboardData(CF_TEXT, hMemory) == NULL)
{
puts("设置剪切板数据失败!!!");
CloseClipboard();
return 1;
}
system("pause");
return 0;
}[/mw_shl_code]
|
|