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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
OnlySergio
3 / 3 / 0
Регистрация: 30.03.2010
Сообщений: 55
#1

трабла с MessageBox - C++

25.11.2010, 14:58. Просмотров 1370. Ответов 6
Метки нет (Все метки)

Вот такая вот задачка сначала задается текст в ANSI ,затем его конвертируем в UNICODE и должны вывести его 3 способами - через _tprintf , WriteConsole, MessageBox . Написал однако почему-то не срабатывает ..
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
#include "stdafx.h"
#include <tchar.h>
#include <locale.h>
#include <iostream>
#include <Windows.h>
 
using namespace std;
 
int main()
{
    _tsetlocale(LC_ALL, "Russian");
    char family[]="Бубликов Олег Петрович";
    wchar_t buffer[sizeof(family)];
 
    MultiByteToWideChar(CP_ACP,0,family,sizeof(family),buffer,sizeof(buffer));
    
    std::cout<<"Вывод до преобразования: "<<family<<endl;
    std::cout<<"Вывод после преобразования: ";
    wprintf((wchar_t*)&buffer);
    MessageBox(NULL,buffer,"Проверка вывода UNICODE",MB_OK);
    HANDLE _stdout = GetStdHandle(STD_OUTPUT_HANDLE);
    std::cout<<"\n";
    WriteConsole(_stdout,buffer,sizeof(family),0,0);
    _tprintf(_T("%s\n"),_T(buffer)); 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2010, 14:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос трабла с MessageBox (C++):

Трабла с прогой - C++
&quot;дан радиус окружности. Найти длину окружности и площадь круга&quot; как вычислить подобную задачу на С. Жду ответа. С уважением.

Трабла с конструктором - C++
Компилятор никаких ошибок не выдает, но программа не запускается. using namespace std; class Cpmv { public: struct Info ...

Трабла с функцией ( - C++
#include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; int main() { } char m(char s) { char...

трабла кодом(Функция) - C++
#include &lt;stdio.h&gt; #include &lt;iostream.h&gt; #include &lt;conio.h&gt; void z(float p,int u) { int i; int F1,F2,S1,S2,K1,K2; ...

трабла с выводом строки - C++
вот код который неправильно работает: void Cue::Out() { char ch; for (int i=0; i&lt;curInd; ++i) { ch = Str; ...

Опять трабла с ответом - C++
вот такой алгоритм 1*10+2*9+3*8+4*7+5*6 #include &lt;iostream.h&gt; #include &lt;stdio.h&gt; const int n=100; int main (int argc, char *...

6
Kastaneda
Нарушитель
Эксперт С++
4676 / 2880 / 234
Регистрация: 12.12.2009
Сообщений: 7,314
Записей в блоге: 2
Завершенные тесты: 1
25.11.2010, 15:31 #2
А что именно не получается?

Добавлено через 2 минуты
ладно, сам проверил, вот так нужно:
C++
1
MessageBoxW(NULL,buffer,L"Проверка вывода UNICODE",MB_OK);
1
OnlySergio
3 / 3 / 0
Регистрация: 30.03.2010
Сообщений: 55
25.11.2010, 16:52  [ТС] #3
спс , и вот еще как быть с printf и WriteConsole , а то они как-то криво работают (некорректно выводят)
0
Kastaneda
Нарушитель
Эксперт С++
4676 / 2880 / 234
Регистрация: 12.12.2009
Сообщений: 7,314
Записей в блоге: 2
Завершенные тесты: 1
25.11.2010, 17:02 #4
А что не получается? У меня все выводит:
трабла с  MessageBox
0
OnlySergio
3 / 3 / 0
Регистрация: 30.03.2010
Сообщений: 55
25.11.2010, 17:06  [ТС] #5
C++
1
2
WriteConsole(_stdout,buffer,sizeof(family),0,0);
    _tprintf(_T("%s\n"),_T(buffer));
Вот эти две строки не правильно выводят. Скрин прилагается
0
Миниатюры
трабла с  MessageBox  
Kastaneda
Нарушитель
Эксперт С++
4676 / 2880 / 234
Регистрация: 12.12.2009
Сообщений: 7,314
Записей в блоге: 2
Завершенные тесты: 1
25.11.2010, 17:37 #6
точно, а у меня после MessageBox'а зкрывалась. Вобщем вот так:
C++
1
WriteConsoleW(....)
А по поводу _tprintf, то так и должно быть (всмысле выводит что попало).
Вот из файла tchar.h
C++
1
#define _tprintf        printf
А ф-ция printf() не умеет выводить unicode.

Добавлено через 1 минуту
вот же, все уже выведенно:
C++
1
 wprintf((wchar_t*)&buffer);
зачем еще _tprintf() ?
1
OnlySergio
3 / 3 / 0
Регистрация: 30.03.2010
Сообщений: 55
25.11.2010, 20:38  [ТС] #7
Хм , теперь надо переделать чтобы был массив строк и менялась кодировка в UNICODE и потом отсортировать массив с помощью qsort
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
#include "stdafx.h"
#include <tchar.h>
#include <locale.h>
#include <iostream>
#include <Windows.h>
 
using namespace std;
 
int cmp_func(const void *a, const void *b){
        return strcmp(*(char**)a, *(char**)b);
}
int main()
{
    _tsetlocale(LC_ALL, "Russian");
    char *family[]={"Бубликов ","Олег","Петрович"};
    wchar_t *buffer[sizeof(family)];
 
    MultiByteToWideChar(CP_ACP,0,family,sizeof(family),buffer,sizeof(buffer));
    
    std::cout<<"Вывод до преобразования: "<<family<<endl;
    std::cout<<"Вывод после преобразования: ";
    wprintf((wchar_t*)&buffer);
    MessageBoxW(NULL,buffer,L"Проверка вывода UNICODE",MB_OK);
    HANDLE _stdout = GetStdHandle(STD_OUTPUT_HANDLE);
    std::cout<<"\n";
    WriteConsoleW(_stdout,buffer,sizeof(family),0,0);
    _tprintf(_T("%s\n"),_T(buffer)); 
    qsort(family,sizeof(family),sizeof(family),cmp_func);
}
0
25.11.2010, 20:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2010, 20:38
Привет! Вот еще темы с ответами:

Читаем из файла, трабла (ifstream, getline) - C++
Доброе время суток! Ребят знаю туплю но все же, спрошу, не тыкайте палкой! Имеем тексовый файл MainMenu_start...

Как быть и что делать? Трабла с шаблонами - C++
Литературы по шаблонному программированию в Си++ так много, что поднимать и искать то, что нужно мне довольно долго... Началось всё с...

messagebox() - C++
нужно из массива вывести данные в окно messagebox #include &quot;stdafx.h&quot; #include &quot;windows.h&quot; int WINAPI WinMain(HINSTANCE,...

MessageBox - C++
Int COUNT=20; MessageBox(NULL, COUNT + L&quot; очков. &quot;, L&quot;Title &quot;, MB_OK); Почему не выводит значение переменной COUNT в окне...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru