Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8371357
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 9, 20262026-06-09T14:08:34+00:00 2026-06-09T14:08:34+00:00

I have been trying to get Glew and opengl 3.2 working with code blocks(minGW)

  • 0

I have been trying to get Glew and opengl 3.2 working with code blocks(minGW) in a win32 context. i found a nice little tutorial here

As i had been trying to work out if compiling glew in codeblocks was actually possible i wanted to try the source out before doing the tutorial to see if it would work.

after tweaking the code slightly I tried to compile and got several errors that i have never seen before. they are as follows

|In function 'bool createWindow(LPCWSTR, int, int)':|
|73|error: cannot convert 'LPCWSTR {aka const wchar_t*}' to 'LPCSTR {aka const char*}' in assignment|
|80|error: cannot convert 'LPCWSTR {aka const wchar_t*}' to 'LPCSTR {aka const char*}' for argument '2' to 'HWND__* CreateWindowExA(DWORD, LPCSTR, LPCSTR, DWORD, int, int, int, int, HWND, HMENU, HINSTANCE, LPVOID)'|
|In function 'int WinMain(HINSTANCE, HINSTANCE, LPSTR, int)':|
|105|warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]|
|110|error: '_TRUNCATE' was not declared in this scope|
|110|error: 'mbstowcs_s' was not declared in this scope|

My code is

include <iostream>
#include <Windows.h>

#ifndef GLEW_STATIC
#define GLEW_STATIC
#endif //GLEW_STATIC



#include <GL/glew.h>
#include <GL/wglew.h>

//using namespace std;
//
//int main()
//{
//    cout << "Hello world!" << endl;
//    return 0;
//}


#include "opengl_3.h"

OpenGLContext openglContext; // Our OpenGL Context class

bool running = true; // Whether or not the application is currently running

HINSTANCE hInstance; // The HINSTANCE of this application
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); // Standard window callback

/**
    WndProc is a standard method used in Win32 programming for handling Window messages. Here we
    handle our window resizing and tell our OpenGLContext the new window size.
*/
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
    switch (message) {
        case WM_SIZE: // If our window is resizing
        {
            openglContext.reshapeWindow(LOWORD(lParam), HIWORD(lParam)); // Send the new window size to our OpenGLContext
            break;
        }

        case WM_DESTROY:
        {
            PostQuitMessage(0);
            break;
        }
    }

    return DefWindowProc(hWnd, message, wParam, lParam);
}

/**
    createWindow is going to create our window using Windows API calls. It is then going to
    create our OpenGL context on the window and then show our window, making it visible.
*/
bool createWindow(LPCWSTR title, int width, int height) {
    WNDCLASS windowClass;
    HWND hWnd;
    DWORD dwExStyle = WS_EX_APPWINDOW | WS_EX_WINDOWEDGE;

    hInstance = GetModuleHandle(NULL);

    windowClass.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
    windowClass.lpfnWndProc = (WNDPROC) WndProc;
    windowClass.cbClsExtra = 0;
    windowClass.cbWndExtra = 0;
    windowClass.hInstance = hInstance;
    windowClass.hIcon = LoadIcon(NULL, IDI_WINLOGO);
    windowClass.hCursor = LoadCursor(NULL, IDC_ARROW);
    windowClass.hbrBackground = NULL;
    windowClass.lpszMenuName = NULL;
    windowClass.lpszClassName = title;

    if (!RegisterClass(&windowClass)) {
        return false;
    }

    hWnd = CreateWindowEx(dwExStyle, title, title, WS_OVERLAPPEDWINDOW,
      CW_USEDEFAULT, 0, width, height, NULL, NULL, hInstance, NULL);

    openglContext.create30Context(hWnd); // Create our OpenGL context on the given window we just created

    ShowWindow(hWnd, SW_SHOW);
    UpdateWindow(hWnd);

    return true;
}

/**
    WinMain is the main entry point for Windows based applications as opposed to 'main' for console
    applications. Here we will make the calls to create our window, setup our scene and then
    perform our 'infinite' loop which processes messages and renders.
*/
int WINAPI WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR    lpCmdLine,
                     int       nCmdShow) {
    MSG msg;

    /**
        The following 6 lines of code do conversion between char arrays and LPCWSTR variables
        which are used in the Windows API.
    */
    char *orig = "OpenGL 3 Project"; // Our windows title
    size_t origsize = strlen(orig) + 1;
    const size_t newsize = 100;
    size_t convertedChars = 0;
    wchar_t wcstring[newsize];
    mbstowcs_s(&convertedChars, wcstring, origsize, orig, _TRUNCATE);

    createWindow(wcstring, 500, 500); // Create our OpenGL window

    openglContext.setupScene(); // Setup our OpenGL scene

    /**
        This is our main loop, it continues for as long as running is true
    */
    while (running)
    {
        if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { // If we have a message to process, process it
            if (msg.message == WM_QUIT) {
                running = false; // Set running to false if we have a message to quit
            }
            else {
                TranslateMessage(&msg);
                DispatchMessage(&msg);
            }
        }
        else { // If we don't have a message to process
            openglContext.renderScene(); // Render our scene (which also handles swapping of buffers)
        }
    }

    return (int) msg.wParam;
}

(Sorry about the wall of text)
there are also other files but all the errors seem to becoming from here.
ill post the rest if needed.

I haven’t really seen any errors similar to this so i did some googling and found out that the error was caused by the compiler not being set to multi byte(a setting in VS2010). i did some looking around and couldnt find any such settings in codeblocks. is this code only usable in VS or have I missed something? im worried it might be something to do with my linking due to me having a lot of issues with this in the past. any help would be appreciated.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-09T14:08:36+00:00Added an answer on June 9, 2026 at 2:08 pm

    Change CreateWindowEx to CreateWindowExW or define the macro UNICODE before including any headers.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have been trying to get the following code working. It's a progress bar
I have been trying to get SqlCacheDependency working. I think I have everything set
I have been trying to get ActionBarSherlock ( http://www.actionbarsherlock.com ) working with my eclipse
I have been trying to get a custom inventory script working in unrealscript. I
I have been trying to get this working for quite a while now but
Have been trying to get integration testing working with my seam project and the
I have been trying to get this android service working but I can not
We have been trying to get git-subtree working on a project (with git version
I have been trying to get xapian working django haystack for a project im
Hi I have been trying to get this script http://jsbin.com/ipajo5/ working but using .live()

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.