Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> WinAPI, char[] vs LPCWSTR, DrawText, _itoa_s 
V
    Опции темы
KasMP
Дата 23.3.2009, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 586
Регистрация: 8.8.2006

Репутация: нет
Всего: 30



Добрый вечер smile !

Думаю, комментировать здесь нечего - все хорошо видно.
Код


...

RECT    vr;
char    s[2];

...

for (short i=0; i<t; i++) {
        
        ...

        _itoa_s(i+1,s,10);

        ...

        // много махинаций для перерасчета прямоугольника vr
        
        ...

        DrawText(hdc, s, strlen(s), &vr, DT_SINGLELINE | DT_VCENTER | DT_CENTER);

        ...

}

...



Цитата(Visual Studio 2008)

'DrawTextW' : cannot convert parameter 2 from 'char [2]' to 'LPCWSTR'


Я не понимаю, в чем проблема?
Нужно передавать LPCWSTR (т.е. длинный указатель на строку) -  я и передаю указатель (а они по умолчанию длинные) smile.

Заменять "char s[2]" на "wchar_t s[2]" не надо, т.к. мне нужна еще _itoa_s().
PM MAIL   Вверх
zim22
Дата 23.3.2009, 21:30 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(KasMP @  23.3.2009,  21:17 Найти цитируемый пост)
Нужно передавать LPCWSTR (т.е. длинный указатель на строку) 

длинный указатель на строку - это LPCSTR
LPCWSTR - буковка W - это Юникод.


--------------------
PM MAIL   Вверх
KasMP
Дата 23.3.2009, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 586
Регистрация: 8.8.2006

Репутация: нет
Всего: 30



Цитата(zim22 @  23.3.2009,  21:30 Найти цитируемый пост)
LPCWSTR - буковка W - это Юникод

Т.е. надо не "char s[2]", а "wchar_t s[2]" ?
Тогда надо еще найти аналог _itoa_s() для юникода, правильно smile ?
PM MAIL   Вверх
zim22
Дата 23.3.2009, 21:45 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



KasMP, вы не поверите, он существует! smile
_itow_s


--------------------
PM MAIL   Вверх
KasMP
Дата 23.3.2009, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 586
Регистрация: 8.8.2006

Репутация: нет
Всего: 30



Код
_itow_s
Код
_itoa_s

Судя по всему, "a" в имени второй ф-ии тоже несет какой-то смысл smile .
PM MAIL   Вверх
Anikmar
Дата 23.3.2009, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 5
Всего: 59



Цитата(KasMP @  23.3.2009,  21:51 Найти цитируемый пост)
Судя по всему, "a" в имени второй ф-ии тоже несет какой-то смысл  . 

Ага. Предполагаю, что ASCII
PM MAIL ICQ   Вверх
KasMP
Дата 23.3.2009, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 586
Регистрация: 8.8.2006

Репутация: нет
Всего: 30



Цитата(Anikmar @  23.3.2009,  21:55 Найти цитируемый пост)
Ага. Предполагаю, что 

Ну зачем вы так ... высокомерно smile .
Цитата(Anikmar @  23.3.2009,  21:55 Найти цитируемый пост)
ASCII 

Теперь я это знаю smile , спасибо. Скоро еще что-нибудь узнаю smile ...
PM MAIL   Вверх
zim22
Дата 23.3.2009, 22:01 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



KasMP, я вам открою тайну, только никому не говорите.
символы i и to  в _itoa_s тоже несут смысл %)


--------------------
PM MAIL   Вверх
KasMP
Дата 23.3.2009, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 586
Регистрация: 8.8.2006

Репутация: нет
Всего: 30



Цитата(zim22 @  23.3.2009,  22:01 Найти цитируемый пост)
KasMP, я вам открою тайну, только никому не говорите.

Ну вот, и вы туда же smile  smile !
Цитата(zim22 @  23.3.2009,  22:01 Найти цитируемый пост)
символы i и to  в _itoa_s тоже несут смысл %) 

Это я и так понимаю, это очевидно.
(или спросить "да?? а какой smile ??" вам на радость smile ?)

Добавлено через 44 секунды
zim22, спасибо вам за маленькую, но очень "+" и своевременную помощь smile .
PM MAIL   Вверх
Anikmar
Дата 23.3.2009, 22:08 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 5
Всего: 59



Цитата(KasMP @  23.3.2009,  22:01 Найти цитируемый пост)
Ну зачем вы так ... высокомерно  .

Даже в мыслях не было. Вам показалось, честно.
PM MAIL ICQ   Вверх
KasMP
Дата 23.3.2009, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 586
Регистрация: 8.8.2006

Репутация: нет
Всего: 30



Цитата(Anikmar @  23.3.2009,  22:08 Найти цитируемый пост)
Даже в мыслях не было. Вам показалось, честно. 

Вашему дракончику на аватарке сложно не поверить smile  smile .

Я так понимаю, ф-ии, возвращающие длины char и wchar_t, разные smile . Но это я буду искать уже сама - надо же тренировать навыки поиска smile .
PM MAIL   Вверх
Anikmar
Дата 23.3.2009, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 5
Всего: 59



Цитата(KasMP @  23.3.2009,  22:15 Найти цитируемый пост)
Я так понимаю, ф-ии, возвращающие длины char и wchar_t, разные  .

Разве? Вроде должны возвращать количество символов в строке. А какая ширина символа - это уже левое (сходу ответил, но не посмотрел хелп, может и неправ, хотя логично, что длина в символах все-таки)


Цитата(KasMP @  23.3.2009,  22:15 Найти цитируемый пост)
Вашему дракончику на аватарке сложно не поверить    

Это я сочту за комплимент  smile 

Это сообщение отредактировал(а) Anikmar - 23.3.2009, 22:18
PM MAIL ICQ   Вверх
KasMP
Дата 23.3.2009, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 586
Регистрация: 8.8.2006

Репутация: нет
Всего: 30



Цитата(Anikmar @  23.3.2009,  22:18 Найти цитируемый пост)
Разве?

При
Код

wchar_t    s[3];
_itow_s(i+1,s,10);
DrawText(hdc, s, strlen(s), &vr, DT_SINGLELINE | DT_VCENTER | DT_CENTER);
возникает
Цитата

'strlen' : cannot convert parameter 1 from 'wchar_t [3]' to 'const char *
Я так понимаю, именно это и хочет сказать VS smile !
PM MAIL   Вверх
mes
Дата 23.3.2009, 22:49 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Anikmar @  23.3.2009,  20:55 Найти цитируемый пост)
Ага. Предполагаю, что ASCII 

a - ANSI
w - WIDE

Добавлено через 3 минуты и 8 секунд
Цитата(KasMP @  23.3.2009,  21:23 Найти цитируемый пост)

'strlen' : cannot convert parameter 1 from 'wchar_t [3]' to 'const char *

http://msdn.microsoft.com/en-us/library/78zh94ax(VS.71).aspx


--------------------
PM MAIL WWW   Вверх
Anikmar
Дата 23.3.2009, 22:54 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 5
Всего: 59



Цитата(KasMP @  23.3.2009,  22:23 Найти цитируемый пост)
Я так понимаю, именно это и хочет сказать VS  ! 

Нет. Посмотрите внимательно на тип аргумента функции strlen.
Ей нужно char*, а вы ей подаете wchar_t*
Наверное нужно использовать вместо strlen что-то вроде wcslen.
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1052 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.