Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Получить текст из буфера обмена - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать скобочный парсер программного кода http://www.cyberforum.ru/cpp-beginners/thread1637770.html
Напишите программу, которая читает и оформляет одиночные команды, встречаются в операторах цикла и условия, в ажурные скобки. Проверить полученный текстовый код программы компиляций и выполнением на...
C++ Нюансы использования динамических массивов в качестве данных-членов в классах Здравствуйте! Не могу создать массив объектов. Помогите ... class hashTable { private: sortedlist* arr ; int arrSize; public: hashTable (int l) { arrSize = l; arr = new sortedlist; http://www.cyberforum.ru/cpp-beginners/thread1637735.html
C++ Найти баг в простой функции проверки правильности скобок
Привет! Проходил онлайн тест, нужно было в очень ограниченное время без IDE (форма фиксирует активность, копипаста из IDE не прокатит) написать ф-цию проверки расстановки скобок. Вот что накидал...
Помогите разобраться в работе программы C++
Ребят,спасите пожалуйста, не могу сообразить, есть код #include "stdafx.h" #include "iostream" #include "string" #include "stdio.h" using namespace std; class Field { public:
C++ Функция unique для list http://www.cyberforum.ru/cpp-beginners/thread1637627.html
Взято отсюда. The second version (2), takes as argument a specific comparison function that determine the "uniqueness" of an element. In fact, any behavior can be implemented (and not only an...
C++ Многопоточные функции Написал программу, которая обрабатывает большой объём информации и столкнулся с проблемой производительности. Начал копать в сторону многопоточности, но есть несколько вопросов, ответ на которые не... подробнее

Показать сообщение отдельно
Sherhanuss
0 / 0 / 0
Регистрация: 13.01.2016
Сообщений: 1
13.01.2016, 18:19
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <exception>
#include <iostream>
#include <ostream>
#include <stdexcept>
#include <string>
#include <windows.h>
using namespace std;
 
class RaiiClipboard
{
public:
  RaiiClipboard()
  {
    if (! OpenClipboard(nullptr))
      throw runtime_error("Can't open clipboard.");
      // ... or define some custom exception class for clipboard errors.
  }
 
  ~RaiiClipboard()
  {
    CloseClipboard();
  }
 
  // Ban copy   
private:
  RaiiClipboard(const RaiiClipboard&);
  RaiiClipboard& operator=(const RaiiClipboard&);
};
 
class RaiiTextGlobalLock
{
public:
  explicit RaiiTextGlobalLock(HANDLE hData)
    : m_hData(hData)
  {
    m_psz = static_cast<const char*>(GlobalLock(m_hData));
    if (! m_psz)
      throw runtime_error("Can't acquire lock on clipboard text.");  
  }
 
  ~RaiiTextGlobalLock()
  {
    GlobalUnlock(m_hData);
  }
 
  const char* Get() const
  { 
    return m_psz;
  }
 
private:
  HANDLE m_hData;
  const char* m_psz;
 
  // Ban copy
  RaiiTextGlobalLock(const RaiiTextGlobalLock&);
  RaiiTextGlobalLock& operator=(const RaiiTextGlobalLock&);
};
 
string GetClipboardText()
{
  RaiiClipboard clipboard;
 
  HANDLE hData = GetClipboardData(CF_TEXT);
  if (hData == nullptr)
    throw runtime_error("Can't get clipboard text.");
 
  RaiiTextGlobalLock textGlobalLock(hData);
  string text( textGlobalLock.Get() );
 
  return text;
}
 
int main()
{
  static const int kExitOk = 0;
  static const int kExitError = 1;
  try
  {
    cout << GetClipboardText() << endl;
    return kExitOk;
  }
  catch(const exception& e)
  {
    cerr << "*** ERROR: " << e.what() << endl;
    return kExitError;
  }
}
вот этот код работает так как надо, но не хочет писать русские символы, setlocale пробовал, не прокатило.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru