Nemůžu použít makro, ikdyž ho mám ve zdrojích. – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Nemůžu použít makro, ikdyž ho mám ve zdrojích. – C / C++ – Fórum – Programujte.comNemůžu použít makro, ikdyž ho mám ve zdrojích. – C / C++ – Fórum – Programujte.com

 

MiCizek0
Stálý člen
25. 7. 2012   #1
-
0
-

Ahoj, požívám program DEV C++ a zkouším v něm napsat jednoduchou windows aplikaci. V hlavičkovém souboru zdroje jsem napsal makra hl. menu #define xxxxxx 4xxxx . Ve zdrojich je můžu použít normálně, ale když je použíju v main.cpp, tak mi to hlásí chybu. Ale číselné ID můžu použít normálně. Takže nevím, co dělám špatně.

#include <windows.h>
#include "VereApp_private.h"

/*  Declare Windows procedure  */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

/*  Make the class name into a global variable  */
char szClassName[ ] = "WindowsApp";

int WINAPI WinMain (HINSTANCE hThisInstance,
                    HINSTANCE hPrevInstance,
                    LPSTR lpszArgument,
                    int nFunsterStil)

{
    HWND hwnd;               /* This is the handle for our window */
    MSG messages;            /* Here messages to the application are saved */
    WNDCLASSEX wincl;        /* Data structure for the windowclass */

    /* The Window structure */
    wincl.hInstance = hThisInstance;
    wincl.lpszClassName = szClassName;
    wincl.lpfnWndProc = WindowProcedure;      /* This function is called by windows */
    wincl.style = CS_DBLCLKS;                 /* Catch double-clicks */
    wincl.cbSize = sizeof (WNDCLASSEX);

    /* Use default icon and mouse-pointer */
    wincl.hIcon = LoadIcon (NULL, MAKEINTRESOURCE("IDI_ICON"));
    wincl.hIconSm = LoadIcon (NULL, MAKEINTRESOURCE("IDI_ICON"));
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName = "MAINMENU";                 /* No menu */
    wincl.cbClsExtra = 0;                      /* No extra bytes after the window class */
    wincl.cbWndExtra = 0;                      /* structure or the window instance */
    /* Use Windows's default color as the background of the window */
    wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;

    /* Register the window class, and if it fails quit the program */
    if (!RegisterClassEx (&wincl))
        return 0;

    /* The class is registered, let's create the program*/
    hwnd = CreateWindowEx (
           0,                   /* Extended possibilites for variation */
           szClassName,         /* Classname */
           "VereApp",       /* Title Text */
           WS_OVERLAPPEDWINDOW, /* default window */
           CW_USEDEFAULT,       /* Windows decides the position */
           CW_USEDEFAULT,       /* where the window ends up on the screen */
           544,                 /* The programs width */
           375,                 /* and height in pixels */
           HWND_DESKTOP,        /* The window is a child-window to desktop */
           NULL,                /* No menu */
           hThisInstance,       /* Program Instance handler */
           NULL                 /* No Window Creation data */
           );

    /* Make the window visible on the screen */
    ShowWindow (hwnd, nFunsterStil);

    /* Run the message loop. It will run until GetMessage() returns 0 */
    while (GetMessage (&messages, NULL, 0, 0))
    {
        /* Translate virtual-key messages into character messages */
        TranslateMessage(&messages);
        /* Send message to WindowProcedure */
        DispatchMessage(&messages);
    }

    /* The program return-value is 0 - The value that PostQuitMessage() gave */
    return messages.wParam;
}


/*  This function is called by the Windows function DispatchMessage()  */

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
        HMENU hMENU;
        switch (message)                  /* handle the messages */
        {
               case WM_COMMAND:
                    hMENU = GetMenu(hwnd);
                    switch (LOWORD(wParam))
                    {
                           case IDM_NEW:
                                PostQuitMessage (0);
                                return (0);
                                break;
                           case 40004:
                                PostQuitMessage (0);
                                return (0);
                                break;
                    }
                    return (0);
               case WM_DESTROY:
               PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
               break;
               default:                      /* for messages that we don't deal with */
               return DefWindowProc (hwnd, message, wParam, lParam);
        }
        return 0;
}
#include "VereApp_private.h"
#include "afxres.h"

IDI_ICON ICON DISCARDABLE "Resource/Icon.ico"

MAINMENU MENU
BEGIN
         POPUP "&File"
         BEGIN
                      MENUITEM "&New",       IDAM_NEW
                      MENUITEM "&Open",       IDM_OPEN
                      MENUITEM "&Save",       IDM_SAVE
                      MENUITEM SEPARATOR
                      MENUITEM "&End",       IDM_END
         END
         POPUP "&Help"
         BEGIN
                      MENUITEM "&Tutorial",       IDM_TUTOR
                      MENUITEM "&About VereApp",       IDM_ABOUT
         END
END
/* THIS FILE WILL BE OVERWRITTEN BY DEV-C++ */
/* DO NOT EDIT ! */

#ifndef VEREAPP_PRIVATE_H
#define VEREAPP_PRIVATE_H

/* VERSION DEFINITIONS */
#define VER_STRING	"0.1.1.1"
#define VER_MAJOR	0
#define VER_MINOR	1
#define VER_RELEASE	1
#define VER_BUILD	1
#define COMPANY_NAME	"Vere Company"
#define FILE_VERSION	""
#define FILE_DESCRIPTION	"Developed using the Dev-C++ IDE"
#define INTERNAL_NAME	""
#define LEGAL_COPYRIGHT	""
#define LEGAL_TRADEMARKS	""
#define ORIGINAL_FILENAME	""
#define PRODUCT_NAME	""
#define PRODUCT_VERSION	""
#define IDI_ICON 101
#define IDM_NEW 40001
#define IDM_OPEN 40002
#define IDM_SAVE 40003
#define IDM_END 40004
#define IDM_TUTOR 40005
#define IDM_ABOUT 40006

#endif /*VEREAPP_PRIVATE_H*/
Nahlásit jako SPAM
IP: 90.180.175.–
yaqwsx+9
Posthunter
25. 7. 2012   #2
-
0
-

Musíš includnou soubor Resource.h

Nahlásit jako SPAM
IP: 85.160.44.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
MiCizek0
Stálý člen
25. 7. 2012   #3
-
0
-

#2 yaqwsx
Ten tam je, akorát, že ho mám pojmenovanej jinak. Jinak jsem tam měl překlep, ale stejně mě to tam před tím překlepem hlásilo chybu. A teď mi jede program v pořádku. Asi jsem tam měl jinou chybu a tu jsem opravil.

Nahlásit jako SPAM
IP: 90.180.175.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 23 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý