我仍然是一个C++新手,他刚刚学会了一些文件操作.我在网上查了一下,所提供的代码超出了我目前的技能.有没有一种简单的方法可以做到这一点,或者是否有任何好的教程可以从基础知识中解释这一点?
我对尺寸问题感到困惑.运行以下代码会在运行时引发异常.具体来说,它似乎在最后出现,文本仍然粘贴成功.由于我的技能有限,我无法清楚地解释这个例外.它开始于我决定使用wcscpy_s函数,因为wcscpy的折旧在我的noob程序中运行良好.
#define _CRT_SECURE_NO_WARNINGS
#include <afxwin.h>
int main() {
wchar_t wcSource[7] = L"Testeu"; // Throws an exception error. However, wcSource[8] doesn't
//wchar_t wcSource[9] = L"TestCopy"; // Runs fine
UINT iSize = sizeof(wcSource);
if (OpenClipboard(NULL)) {
EmptyClipboard();
HGLOBAL hClipboardData;
hClipboardData = GlobalAlloc(GMEM_DDESHARE, iSize);
wchar_t *wpchData;
wpchData = (wchar_t*)GlobalLock(hClipboardData);
//wcscpy(wpchData, wcSource); // Works fine
wcscpy_s(wpchData, iSize, wcSource);
GlobalUnlock(hClipboardData);
SetClipboardData(CF_UNICODETEXT, hClipboardData);
CloseClipboard();
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)