Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум программистов _ MS Visual C++ _ Трудности перевода проекта с С на Visual Studio 2005 С++

Автор: IPSergik 29:04:2008, 10:57

Появилась необходимость перевести проект с С на Visual Studio 2005 С++...
Появились непонятные ошибки. Если что - не судите строго за возможную простоту их решения (давно уже это было... вот сейчас восстанавливаю забытые знания да и с Visual Studio 2005 не знаком).

Ошибки:
wc.lpszClassName = "Freel"; - error C2440: '=' : cannot convert from 'const char [9]' to 'LPCWSTR'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

if (!TranslateAccelerator(hwndDlg,hAccelTable,&msg)) - cannot convert parameter 2 from 'HANDLE' to 'HACCEL'
Conversion from 'void*' to pointer to non-'void' requires an explicit cast

hMenu = GetSubMenu (hMenu, 0) ; - cannot convert parameter 1 from 'HWND' to 'HMENU'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

Автор: shisik 29:04:2008, 11:02

Самое простое, что можно сделать. 1:

strcpy(wc.lpszClassName, "Freel");

2:
if (!TranslateAccelerator(hwndDlg,hAccelTable, (HACCEL) &msg))

3:
hMenu = (HMENU) GetSubMenu(hMenu, 0);

Автор: Kmet 29:04:2008, 11:37

Цитата(shisik @ 29:04:2008 - 13:02) *
Самое простое, что можно сделать. 1:
Код
strcpy(wc.lpszClassName, "Freel");

зачем советовать бред?!


wc.lpszClassName = L"Freel"

или
wc.lpszClassName = _TEXT("Freel")

вот только не помню в каком хидере объвлен этот макрос, вроде бы tchar

Автор: SunSanych 30:04:2008, 07:02

Маленькое уточнение:
В 2005-ой Visual Studio вместо _TEXT() нужно использовать макрос _T(x).
_T(x) объявлен в tchar.h

Форум Invision Power Board (http://nulled.ws)
© Invision Power Services (http://nulled.ws)