如何使用 C 和 WinAPI 将包含特殊字符的文本复制到剪贴板?

How to copy text including special characters to clipboard using C and WinAPI?

我正在尝试制作将文本​​复制到剪贴板的小 c 程序。我在这个网站上发现了这个问题。程序代码:

const char* output = "Test";
const size_t len = strlen(output) + 1;
HGLOBAL hMem =  GlobalAlloc(GMEM_MOVEABLE, len);
memcpy(GlobalLock(hMem), output, len);
GlobalUnlock(hMem);
OpenClipboard(0);
EmptyClipboard();
SetClipboardData(CF_TEXT, hMem);
CloseClipboard();

此程序会将文本复制到剪贴板。但我需要它来复制 2 行。所以我试试这个:

const char* output = "Test1\nTest2";

但它被复制为文字。我该如何修复此代码,结果将是:

Test1
Test2

而不是:

Test1\nTest2

Standard Clipboard Formats 的页面是关于 CF_TEXT 的:

Text format. Each line ends with a carriage return/linefeed (CR-LF) combination. A null character signals the end of the data. Use this format for ANSI text.

所以你可能需要:

const char* output = "Test1\r\nTest2";
                           ^^