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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 26.05.2008, 14:41   #1
Freeman
Пользователь
 
Регистрация: 05.02.2008
Сообщений: 17
По умолчанию Ошибка

Здраствуйте.
Только начинаю осваивать оконный интерфейс через C++.

среда разработки MS VS 2005, С++

пишу код как в учебнике
Код:
#include <windows.h>

LRESULT CALLBACK WindowsFunc(HWND, UINT, WPARAM, LPARAM);
TCHAR WinName[100]="123";
int WINAPI WinMain(HINSTANCE This, HINSTANCE Prev, LPSTR cmd, 
				   int mode)
{
HWND hwnd;
MSG msg;
WNDCLASS wc;

wc.hInstance = This;
wc.lpszClassName = WinName;
wc.lpfnWndProc = WindowsFunc;
wc.style=0;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor=LoadCursor(NULL,IDC_ARROW);
wc.lpszMenuName = NULL;
wc.cbClsExtra =0;
wc.cbWndExtra = 0;
wc.hbrBackground  = (HBRUSH)GetStockObject(WHITE_BRUSH);
if(!RegisterClass(&wc))return 0;

hwnd = CreateWindow(WinName, "123", WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
					HWND_DESKTOP,NULL,This,NULL);
ShowWindow(hwnd, mode);
	
	while(GetMessage(&msg,NULL,0,0))
	{
	TranslateMessage(&msg);
	DispatchMessage(&msg);

	}
}
	LRESULT CALLBACK WindowsFunc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
	{
		switch(message){
		case WM_DESTROY : PostQuitMessage(0);
							  break;
		default: return DefWindowProc(hwnd, message, wParam, lParam);
		}
	return 0;
	}
в итоге ошибка, мол невозможно преобразовать char в TCHAR.
и char в LPCWSTR.
Как я понял не хватает какаго-то ключевого слова, котоое решит всю проблему.
вот лог.
Код:
------ Build started: Project: test2, Configuration: Debug Win32 ------
Compiling...
main.cpp
c:\documents and settings\андрон\мои документы\visual studio 2005\projects\test2\test2\main.cpp(4) : error C2440: 'initializing' : cannot convert from 'const char [4]' to 'TCHAR [100]'
        There is no context in which this conversion is possible
c:\documents and settings\андрон\мои документы\visual studio 2005\projects\test2\test2\main.cpp(25) : error C2664: 'CreateWindowExW' : cannot convert parameter 3 from 'const char [4]' to 'LPCWSTR'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
test2 - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Freeman вне форума
Старый 26.05.2008, 15:23   #2
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Ав каком это учебнике Вы эдакое:
Код:
TCHAR WinName[100]="123";
нашли? Уж хотя бы тогда
Код:
TCHAR WinName[]=TEXT("123");
А ключевое слово - UNICODE. Воспользуйтесь поиском по разделу, "проблема" много раз обсуждалась.
B_N вне форума
Старый 26.05.2008, 16:25   #3
Freeman
Пользователь
 
Регистрация: 05.02.2008
Сообщений: 17
По умолчанию

в книге написано так
Код:
char WinName[] = "MainFrame";
и это все равно ошибка
Код:
------ Build started: Project: test2, Configuration: Debug Win32 ------
Compiling...
main.cpp
c:\documents and settings\андрон\мои документы\visual studio 2005\projects\test2\test2\main.cpp(13) : error C2440: '=' : cannot convert from 'char [10]' to 'LPCWSTR'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
c:\documents and settings\андрон\мои документы\visual studio 2005\projects\test2\test2\main.cpp(25) : error C2664: 'CreateWindowExW' : cannot convert parameter 2 from 'char [10]' to 'LPCWSTR'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
test2 - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
А так, как Вы сказали все работет.

Последний раз редактировалось Freeman; 26.05.2008 в 16:28.
Freeman вне форума
Старый 26.05.2008, 19:43   #4
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,619
По умолчанию

Вот здесь я лично выяснял сей вопрос.
MaTBeu вне форума
Закрытая тема


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка с mod Kn793 Помощь студентам 2 16.07.2008 13:28
В чем ошибка!!! juden Общие вопросы Delphi 12 10.03.2008 08:53
в чем ошибка? Lonix Общие вопросы Delphi 2 24.03.2007 09:41