我正在尝试将剪贴板内容写入文件,但由于某种原因,该程序正在冻结。
FILE *fp;
fp = fopen("tmp.code","w");
fprintf(fp,getclip()); /*writes*/
fclose(fp);
char* getclip(){
HANDLE clip;
if (OpenClipboard(NULL)){
clip = GetClipboardData(CF_TEXT);
CloseClipboard();
return clip;
}
}
我做错了什么?
由于
答案 0 :(得分:4)
函数getclip()
返回int
,fprintf
期望指向char的指针。它正在尝试访问无效的内存位置:您将HANDLE
作为int
返回,然后fprintf
将其解释为内存地址以从中读取字符。
请查看编译器错误和警告并修复代码。