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

как преобразовать из TCHAR[] в char[], при получении строки из чужого окна - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
dqrest
2 / 2 / 0
Регистрация: 06.01.2012
Сообщений: 114
14.05.2012, 11:36     как преобразовать из TCHAR[] в char[], при получении строки из чужого окна #1
Есть некоторое непонимание преобразования из unicode в ascii.Есть чужое окно, нужно из этого окна получить содержимое статусбара(время, которое постоянно обновляется). И это время+свои данные нужно записать в БД(mysql). Прога пишется на MS VS 2010. ПРоект построен с использованием набора символов Юникода, т.е. (свойства проета-->свойства конфигурации --> общие-->набор символов)Вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
bool flag_error=false;
char str_time[30];
HWND TimehWnd;
TimehWnd = FindWindow(L"InfoClass", NULL);
TimehWnd=FindWindowEx(TimehWnd,NULL,L"msctls_statusbar32",NULL);
if(IsWindow(TimehWnd))
{
   TCHAR s[30]; 
   SendMessage(TimehWnd,WM_GETTEXT,29,(LPARAM)s);       
   CharToOem(s,str_time);
   puts(str_time);
   flag_error=true;
}
if(flag_error==true)
{
/// обработка своих данных и заносим в бд
}
else
{
//на всякий случай, если как не получили время, то берем свое системное время
}


Так вот, пробелема возникает в CharToOem выскакивает DeBugger и ругается, что память в str_time переполнилась. В чем проблема???? И нельзя ли как-нить в SendMessage засунусть QString, чтобы выделением памяти не напрягаться и легко переходить из юникод в аскии и наоборот???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2012, 11:36     как преобразовать из TCHAR[] в char[], при получении строки из чужого окна
Посмотрите здесь:

C++ error C2664: sprintf: невозможно преобразовать параметр 1 из 'const char *' в 'char *'
C++ как int преобразовать в char?
Как можно считывать из строки (std::string или char*) данные при помощи cin C++
Char, TCHAR, wchar_t C++
C++ Как преобразовать string в char*?
C++ Как узнать длину строки TCHAR?
Преобразовать string в TCHAR C++
Как перевести TCHAR в CHAR и обратно C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 09:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru