Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.08.2009, 21:36   #1
k_Pronin
Новичок
Джуниор
 
Регистрация: 18.08.2009
Сообщений: 3
По умолчанию злосчастный OnDraw

Здравствуйте друзья.

В MFC vs 2005 проблема с методом OnDraw()
Код:
void CwelcomeView::OnDraw(CDC* pDC)
{
	CString welcome_string = "Hi";
	CwelcomeDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	if (!pDoc)
		return;
	pDC->TextOut(0,0, welcome_string);
}
пишет ошибку :
error C2440: 'initializing' : cannot convert from 'const char [3]' to 'ATL::CStringT<BaseType,StringTrait s>'
with
[
BaseType=wchar_t,
StringTraits=StrTraitMFC_DLL<wchar_ t>
]
Constructor for class 'ATL::CStringT<BaseType,StringTrait s>' is declared 'explicit'
with
[
BaseType=wchar_t,
StringTraits=StrTraitMFC_DLL<wchar_ t>
]

Что бы это всё могло обозначать не подскажите ?
Приятно что существуют подобные форумы, где люди готовы тратить личное время на помощь своим коллегам.
k_Pronin вне форума Ответить с цитированием
Старый 18.08.2009, 21:44   #2
lennon
Заблокирован
 
Регистрация: 18.11.2007
Сообщений: 254
По умолчанию

ошибка возникает здесь?
Код:
CString welcome_string = "Hi";
если так то проблема в том что по умолчанию проекта массив символов класса CString состоит из wchar_t, вы присваивали char. поробуйте так
Код:
CString welcome_string = L"Hi"
lennon вне форума Ответить с цитированием
Старый 18.08.2009, 22:19   #3
k_Pronin
Новичок
Джуниор
 
Регистрация: 18.08.2009
Сообщений: 3
По умолчанию

Спасибо lennon помогло.
Приятно что существуют подобные форумы, где люди готовы тратить личное время на помощь своим коллегам.

Последний раз редактировалось k_Pronin; 19.08.2009 в 00:16.
k_Pronin вне форума Ответить с цитированием
Старый 18.08.2009, 22:26   #4
lennon
Заблокирован
 
Регистрация: 18.11.2007
Сообщений: 254
По умолчанию

что эта строка будет иметь тип wchar_t
lennon вне форума Ответить с цитированием
Старый 19.08.2009, 00:20   #5
k_Pronin
Новичок
Джуниор
 
Регистрация: 18.08.2009
Сообщений: 3
По умолчанию

Понял)) это типо префикс венгерской записи ?
Приятно что существуют подобные форумы, где люди готовы тратить личное время на помощь своим коллегам.
k_Pronin вне форума Ответить с цитированием
Старый 19.08.2009, 12:15   #6
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

Цитата:
Сообщение от k_Pronin Посмотреть сообщение
Понял)) это типо префикс венгерской записи ?
Причем тут венгерская запись? L указывает, что строка в кавычках не однобайтовая, а в юникоде. Проект у вас по умолчанию юникодный создался и потому надо и строки в этом формате предоставлять. Можете в свойствах проекта изменить набор символов с юникодного на однобайтовый и не нужно будет перед строками L писать.
pu4koff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск