Как получить русский текст из буфера обмена на C++?
Как получить русский текст из буфера обмена на C++?
Нашел вот такой код, но он не работает. С символами не русского языка все работает отлично, но если в строке есть русский символ, то он просто пустой, при выводе в консоли.
Вот код:
#include <iostream>
#include <windows.h>
std::wstring GetClipboardText()
{
if (!OpenClipboard(nullptr))
{
CloseClipboard();
return L"";
}
HANDLE hData = GetClipboardData(CF_UNICODETEXT);
if (hData == nullptr)
{
CloseClipboard();
return L"";
}
wchar_t* pszText = static_cast<wchar_t*>(GlobalLock(hData));
if (pszText == nullptr)
{
CloseClipboard();
return L"";
}
std::wstring text(pszText);
GlobalUnlock(hData);
CloseClipboard();
return text;
}
int main()
{
std::wstring text = GetClipboardText();
std::wcout << text << std::endl;
return 0;
}