Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > Ошибки при компиляции в MSVisualStudio


Автор: Maka6er 12.5.2007, 22:42
Пытаюсь написать скелет приложения 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 компилирует.

Как решить данную проблему?

Автор: DigitSphinx 12.5.2007, 23:18
Это из-за 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);
....

Автор: Maka6er 12.5.2007, 23:51
Спасибо, помогло. Еще надо в include добавить TCHAR.H

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)