クリップボードの動き
——-
1.OpenClipboard() // 開く
2.EmptyClipboard() // 現在の確保メモリを開放
3.GlobalAlloc()、GlobalLock() // 書き込むメモリを確保
4.上記メモリに書き込む
5.GlobalUnlock() // メモリのロックを解除
6.SetClipboardData() // メモリをクリップボードにセット
7.CloseClipboard() // 閉じる
#include <stdio.h> #include <string.h> // strlenに使用 int main(void){ char str[256]; int len; scanf("%s", str); len = strlen(str); printf("入力した文字列は:%s\n文字数:%d\n", str, len); thandl = GlobalAlloc(str, len+1); OpenClipboard(NULL); EmptyClipboard(); SetClipboardData(str, thandl); CloseClipboard(); return 0; }
$ gcc -o main main.c
main.c: In function ‘main’:
main.c:13:2: error: ‘thandl’ undeclared (first use in this function)
thandl = GlobalAlloc(str, len+1);
^~~~~~
main.c:13:2: note: each undeclared identifier is reported only once for each function it appears in
main.c:13:11: warning: implicit declaration of function ‘GlobalAlloc’ [-Wimplicit-function-declaration]
thandl = GlobalAlloc(str, len+1);
^~~~~~~~~~~
main.c:15:2: warning: implicit declaration of function ‘OpenClipboard’ [-Wimplicit-function-declaration]
OpenClipboard(NULL);
^~~~~~~~~~~~~
main.c:16:2: warning: implicit declaration of function ‘EmptyClipboard’ [-Wimplicit-function-declaration]
EmptyClipboard();
^~~~~~~~~~~~~~
main.c:18:2: warning: implicit declaration of function ‘SetClipboardData’ [-Wimplicit-function-declaration]
SetClipboardData(str, thandl);
^~~~~~~~~~~~~~~~
main.c:19:2: warning: implicit declaration of function ‘CloseClipboard’ [-Wimplicit-function-declaration]
CloseClipboard();
^~~~~~~~~~~~~~
windows.hでないと無理か。。
APIがOSによって異なることをあまり理解できていない。