C++ Visual Studio ошибка: main.obj: ошибка LNK2001: неразрешенный внешний символ "struct Menu_t * menu" (? Menu@@3PAUMenu_t@@A)

У меня проблема с компилятором Visual Studio C++, и я не смог решить ее с другими постами.

Я пытаюсь создать структуру меню и создать внешний указатель на эту структуру в том же файле (menu.h). Но компилятор возвращает мне эти ошибки:

d3d9.obj: ошибка LNK2001: неразрешенный внешний символ "struct Menu_t * menu" (?menu@@3PAUMenu_t@@A)

main.obj: ошибка LNK2001: неразрешенный внешний символ "struct Menu_t * menu" (?menu@@3PAUMenu_t@@A)

Вот файл:

#ifndef HMENU_H
#define HMENU_H

struct MenuItem_t
{
    int itemType;
    int itemState;
    LPSTR itemTitle;

    MenuItem_t() {}

    MenuItem_t(char *title, int type, int state)
    {
        //strcpy(itemTitle, title);
        itemTitle = title;
        itemType = type;
        itemState = state;
    }
};

struct Menu_t
{
    bool isShown;
    int itemNumber;
    int selectedItem;
    MenuItem_t *menuItem;

    Menu_t() {}

    Menu_t(bool menuShown, const int numOfItems, char itemTitles[][32], int itemTypes[], int itemStates[])
    {
        isShown = menuShown;
        itemNumber = numOfItems;
        menuItem = new MenuItem_t[itemNumber];
        for (int i = 0; i < itemNumber; i++)
        {
            menuItem[i] = MenuItem_t(itemTitles[i], itemTypes[i], itemStates[i]);
        }
    }
};


//Menu_t *menu;

extern Menu_t *menu;

#endif

РЕДАКТИРОВАТЬ: Хорошо, поэтому моя ошибка была в том, что я не поместил объявление "Menu_t * меню" в коде. Спасибо drescherjm за помощь

0 ответов

Другие вопросы по тегам