Трудности перевода проекта с С на Visual Studio 2005 С++

  • Автор темы IPSergik
  • Дата начала
I

IPSergik

Гость
#1
Появилась необходимость перевести проект с С на 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

Well-Known Member
26.08.2007
154
0
29
Харьков
#2
Самое простое, что можно сделать. 1:
Код:
strcpy(wc.lpszClassName, "Freel");
2:
Код:
if (!TranslateAccelerator(hwndDlg,hAccelTable, (HACCEL) &msg))
3:
Код:
hMenu = (HMENU) GetSubMenu(hMenu, 0);
 

Kmet

Well-Known Member
Java Team
25.05.2006
1 036
8
#3
Самое простое, что можно сделать. 1:
Код
strcpy(wc.lpszClassName, "Freel");
зачем советовать бред?!


Код:
wc.lpszClassName = L"Freel"
или
Код:
wc.lpszClassName = _TEXT("Freel")
вот только не помню в каком хидере объвлен этот макрос, вроде бы tchar
 

SunSanych

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