resource problems

This is a discussion on resource problems within the Windows Programming forums, part of the Platform Specific Boards category; So I'm finally taking a serious look at windows programing, and I have come across my first problem rather quickly... ...

  1. #1
    Darkness Prevails Dark_Phoenix's Avatar
    Join Date
    Oct 2006
    Location
    Houston, Texas
    Posts
    174

    resource problems

    So I'm finally taking a serious look at windows programing, and I have come across my first problem rather quickly...

    I created a simple window with no problems, but now I am adding a menu and I can't get it to do anything. Not sure if it is something I am missing in the programming or if it is a setting in C::B but as soon as I added the files 'resource.h' and 'resource.rc' I get this error:
    Code:
    rc.exe /IC:\Development\Dot_Net_Framework\v2.0\Bin /IC:\Development\VCToolkit2003\include /IC:\Development\MS_Platform_SDK\Include /IC:\Development\DirextX_90_SDK\Include -foobj\Debug\resource.res resource.rc
    Execution of 'rc.exe /IC:\Development\Dot_Net_Framework\v2.0\Bin /IC:\Development\VCToolkit2003\include /IC:\Development\MS_Platform_SDK\Include /IC:\Development\DirextX_90_SDK\Include -foobj\Debug\resource.res resource.rc' in 'C:\Programming\Win32_Tutorials\windows' failed.
    Nothing to be done.
    and the code...

    main.cpp
    Code:
    #include <windows.h>
    #include "resource.h"
    // the window class name as a global variable
    const char g_szClassName[] = "myWindowClass";
    /*********************************************************************************/
    /*****  Step 4: the Window Procedure  ********************************************/
    LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
    {
        switch(msg)
        {
            // left click on the window to display the .exe file path
            case WM_LBUTTONDOWN:
            {
                char szFileName[MAX_PATH];
                HINSTANCE hInstance = GetModuleHandle(NULL);
                GetModuleFileName(hInstance, szFileName, MAX_PATH);
                MessageBox(hwnd, szFileName, "This program is:",
                           MB_OK | MB_ICONINFORMATION);
            } break;
            case WM_CLOSE:
            {
                DestroyWindow(hwnd);
            } break;
            case WM_DESTROY:
            {
                PostQuitMessage(0);
            } break;
            default:
            {
                return DefWindowProc(hwnd, msg, wParam, lParam);
            }
        }
        return 0;
    }
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                       LPSTR lpCmdLine, int nCmdShow)
    {
        WNDCLASSEX wc;
        HWND hwnd;
        MSG Msg;
    /*********************************************************************************/
    /*****  Step 1: Registering the Window Class  ************************************/
        wc.cbSize        = sizeof(WNDCLASSEX);
        wc.style         = 0;
        wc.lpfnWndProc   = WndProc;
        wc.cbClsExtra    = 0;
        wc.cbWndExtra    = 0;
        wc.hInstance     = hInstance;
        wc.hIcon         = LoadIcon(NULL, IDI_APPLICATION);
        wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
        wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
        wc.lpszMenuName  = MAKEINTRESOURCE(IDR_MYMENU);
        wc.lpszClassName = g_szClassName;
        wc.hIconSm       = LoadIcon(NULL, IDI_APPLICATION);
        if(!RegisterClassEx(&wc))
        {
            MessageBox(NULL, "Window Registration Failed!", "Error!",
                MB_ICONEXCLAMATION | MB_OK);
            return 0;
        }
    /*********************************************************************************/
    /*****  Step 2: Creating the Window  *********************************************/
        hwnd = CreateWindowEx(WS_EX_CLIENTEDGE,
                              g_szClassName,
                              "The title of my window",
                              WS_OVERLAPPEDWINDOW,
                              CW_USEDEFAULT,
                              CW_USEDEFAULT,
                              480, 240,
                              NULL,
                              NULL,
                              hInstance,
                              NULL);
        if(hwnd == NULL)
        {
            MessageBox(NULL, "Window Creation Failed!", "Error!",
                MB_ICONEXCLAMATION | MB_OK);
            return 0;
        }
        ShowWindow(hwnd, nCmdShow);
        UpdateWindow(hwnd);
    /*********************************************************************************/
    /*****  Step 3: The Message Loop  ************************************************/
        while(GetMessage(&Msg, NULL, 0, 0) > 0)
        {
            TranslateMessage(&Msg);
            DispatchMessage(&Msg);
        }
        return Msg.wParam;
    }
    resource.h
    Code:
    #ifndef RESOURCE_H_INCLUDED
    #define RESOURCE_H_INCLUDED
    #define IDR_MYMENU        101
    #define ID_FILE_EXIT     1001
    #endif // RESOURCE_H_INCLUDED
    resource.rc
    Code:
    #include "resource.h"
    IDR_MYMENU MENU
    BEGIN
        POPUP "&File"
        BEGIN
            MENUITEM "E&xit", ID_FILE_EXIT
        END
    END
    I'm sure it is something simple but I just can't place it... Any ideas?
    Using Code::Blocks and Windows XP

    In every hero, there COULD be a villain!

  2. #2
    Registered User
    Join Date
    Mar 2005
    Location
    Mountaintop, Pa
    Posts
    1,059
    RC.EXE resource.rc
    CL.EXE main.cpp resource.res

  3. #3
    Darkness Prevails Dark_Phoenix's Avatar
    Join Date
    Oct 2006
    Location
    Houston, Texas
    Posts
    174
    Compiler path setting for rc.exe was pointing to the right filename but the wrong path.

    Got it... Thanks!
    Using Code::Blocks and Windows XP

    In every hero, there COULD be a villain!

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. No clue how to make a code to solve problems!
    By ctnzn in forum C Programming
    Replies: 8
    Last Post: 10-16-2008, 03:59 AM
  2. Enum declarations in resource file
    By Ktulu in forum Windows Programming
    Replies: 3
    Last Post: 11-27-2007, 03:26 PM
  3. Problems with DIB in a resource
    By golem in forum Windows Programming
    Replies: 2
    Last Post: 06-27-2002, 07:39 AM
  4. Serial Communications in C
    By ExDigit in forum Windows Programming
    Replies: 7
    Last Post: 01-09-2002, 10:52 AM
  5. Problems with resource files
    By Unregistered in forum C++ Programming
    Replies: 18
    Last Post: 08-31-2001, 09:45 AM

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21