![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Evgen24 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 31.7.2007 Где: Россия Репутация: нет Всего: нет |
Сегодня поставил себе Visual Studio 2008 и сталкнулся с такой проблемой. Я пишу:
а она мне отвечает: microsoft visual studio 9.0\vc\myprojects\ex1\ex1\ex1view.cpp(50) : error C2664: 'BOOL CDC::TextOutW(int,int,const CString &)' : cannot convert parameter 3 from 'const char [14]' to 'const CString &' 1> Reason: cannot convert from 'const char [14]' to 'const CString' как же тут строку на экран вывести? |
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 8 Всего: 56 |
|
|||
|
||||
Kallikanzarid |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 240 Регистрация: 9.11.2008 Репутация: 2 Всего: 3 |
Это что-то странное. Либо МФЦ еще более хреновая библиотека, чем я думал, либо у тебя в настройках проставлен Юникод.
|
|||
|
||||
Evgen24 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 31.7.2007 Где: Россия Репутация: нет Всего: нет |
Что за Юникод? как его отключить?
|
|||
|
||||
Kallikanzarid |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 240 Регистрация: 9.11.2008 Репутация: 2 Всего: 3 |
Раз не знаешь, значит включен
![]() Решение проблемы - вместо char* используй LPCTSTR и LPTSTR, вместо char - TCHAR, вместо "строковый литерал" - _T( "строковый литерал" ). Тогда программа будет работать и с Юникодом, и без. Явно вызывать конструктор, как в примере выше, необязательно. |
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 8 Всего: 56 |
||||
|
||||
Kallikanzarid |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 240 Регистрация: 9.11.2008 Репутация: 2 Всего: 3 |
А CString - это не?
|
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 8 Всего: 56 |
нет, это преобразование типа - явное.
|
|||
|
||||
Kallikanzarid |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 240 Регистрация: 9.11.2008 Репутация: 2 Всего: 3 |
Учи матчасть. Это явное создание объекта, а явное создание объекта подразумевает вызов конструктора. Если бы ты сделал reinterpret_cast<CString>, я бы с тобой согласился.
|
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 8 Всего: 56 |
могу тебе посоветовать тоже самое ;) это называется преобразование типа, вызов конструктора тут следствие, а не причина. |
|||
|
||||
Kallikanzarid |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 240 Регистрация: 9.11.2008 Репутация: 2 Всего: 3 |
Притянуто за уши. Так можно любое создание объекта с параметрами назвать преобразованием типа.
|
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 8 Всего: 56 |
это не притянуто за уши, это название конструкции языка. Споры вокруг этого бессмысленны, т.к эта конструкция означает приведение типа, а не явный вызов конструктора. Ты можешь спорить с этим сколько угодно, но в С++ оно значит, то, что значит и ничего более
|
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
Kallikanzarid и vinter, Вы не о том спорите.
ИМХО, спор должен быть о необходимости явного преобразования в вышеупомяннутой конструкции. В чем лично я сильно сомнваюсь.. P.S. в терминах придерживаюсь позиции vinterа. Это сообщение отредактировал(а) mes - 7.1.2009, 15:17 |
|||
|
||||
Evgen24 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 31.7.2007 Где: Россия Репутация: нет Всего: нет |
Охх, это что теперь чтобы в VS2008 строку в кавычках написать нужно постоянно тип преобразовывать?
|
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 8 Всего: 56 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |