我想在剪贴板上输入文字:
#include <windows.h>
void copier_dans_presse_papier(const char *s)
{
if(OpenClipboard(NULL))
{
HGLOBAL h;
EmptyClipboard();
h = GlobalAlloc(GHND, strlen(s) + 1);
if(h)
{
char *p = GlobalLock(h); /* line 13 */
if(p)
{
strcpy(p, s);
GlobalUnlock(h);
SetClipboardData(CF_TEXT, h);
}
GlobalFree(h);
}
CloseClipboard();
}
}
int main(void)
{
copier_dans_presse_papier("Hello World !");
return 0;
}
我在编译时遇到此错误: [错误]从'LPVOID {aka void *}'到'char *'的无效转换[-fpermissive]
(第13行)
如何解决?
答案 0 :(得分:0)
GlobalLock
不会返回char*
,而是返回LPVOID
(对于typedef
来说只是void*
)。只是像这样转换结果:
char *p = (char*) GlobalLock(h);
它有效,至少对我有用。您可能使用C教程编写了代码,而无需进行强制转换。