Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибки при компиляции в MSVisualStudio, проблема с WNDCLAS lpszClassNam 
V
    Опции темы
Maka6er
  Дата 12.5.2007, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 27.2.2007
Где: Киев

Репутация: нет
Всего: 3



Пытаюсь написать скелет приложения opengl под win.


Код


int WINAPI WinMain(HINSTANCE hThisInst,
                                    HINSTANCE hPrevInst,
                                    LPSTR str,int nWinMode)
 {
 MSG msg;
 WNDCLASS wcl;
 wcl.hInstance=hThisInst;
 wcl.lpszClassName = "OpenGLWinClass";
 wcl.lpfnWndProc = WindowFunc;
 wcl.style = CS_OWNDC | CS_HREDRAW | CS_VREDRAW;
 wcl.hIcon = NULL;
 wcl.hCursor = LoadCursor(NULL,IDC_ARROW);
 wcl.lpszMenuName = NULL;
 wcl.cbClsExtra = 0;
 wcl.cbWndExtra = 0;
 wcl.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
 RegisterClass(&wcl);
 hWnd = CreateWindow(
   "OpenGLWinClass",
   "Win API Template",
   WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS,
   200,
   150,
   400,
   420,
   HWND_DESKTOP, NULL,
   hThisInst, NULL);
 ShowWindow(hWnd,nWinMode);
 UpdateWindow(hWnd);
 while(1)
 {
   while( PeekMessage(&msg,NULL,0,0,PM_NOREMOVE) )
     if(GetMessage(&msg,NULL,0,0))
      {
       TranslateMessage(&msg);
       DispatchMessage(&msg);
      }
     else
       return 0;
   display();
 }
 return 0;
 }



При попытке скомпилировать в MS Visual Studio 2005 выдает ошибки:

wcl.lpszClassName = "OpenGLWinClass";              error C2440: '=' : cannot convert from 'const char [15]' to 'LPCWSTR'
hThisInst, NULL);                                               error C2664: 'CreateWindowExW' : cannot convert parameter 2 from 'const char [15]' to 'LPCWSTR'
    
Хотя Dev-cpp компилирует.

Как решить данную проблему?
PM MAIL   Вверх
DigitSphinx
Дата 12.5.2007, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 28.4.2007
Где: Москва

Репутация: 1
Всего: 3



Это из-за UNICODE , все “any string” заключай в   _T()  т.е. _T(“any string”)

Код

...
 wcl.lpszClassName = _T("OpenGLWinClass");
...
hWnd = CreateWindow(
  _T( "OpenGLWinClass"),
  _T("Win API Template"),
   WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS,
   200,
   150,
   400,
   420,
   HWND_DESKTOP, NULL,
   hThisInst, NULL);
....


Это сообщение отредактировал(а) DigitSphinx - 12.5.2007, 23:20


--------------------
Чтобы пробить стену лбом нужен или большой разбег, или много лбов.
(Альберт Эйнштейн)
Умен ты или глуп, велик ты или мал, не знаем мы, пока ты слова не сказал.
(Альберт Эйнштейн)
user posted image
PM MAIL ICQ   Вверх
Maka6er
Дата 12.5.2007, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 27.2.2007
Где: Киев

Репутация: нет
Всего: 3



Спасибо, помогло. Еще надо в include добавить TCHAR.H
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0499 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.