Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
xKIVIx
0 / 0 / 1
Регистрация: 21.06.2016
Сообщений: 14
Завершенные тесты: 1
1

LNK2019 при объявлении переменной типа из пространства имен в структуре

07.07.2016, 10:18. Просмотров 188. Ответов 2
Метки нет (Все метки)

Доброго времени суток!
Возникла такая проблема , при использовании типа определенного в пространстве имен в структуре BLOCK_INFO_FILE выдается ошибка компилятором :
Ошибка LNK2019 unresolved external symbol "public: __thiscall MY_OPENGL_MATH::vector::vector(void)" (??0vector@MY_OPENGL_MATH@@QAE@XZ) referenced in function "public: __thiscall CMenuEditorDlg::BLOCK::BLOCK_INFO_FILE::BLOCK_INFO_FILE(class CRect,unsigned int,int,int,class CRect)" (??0BLOCK_INFO_FILE@BLOCK@CMenuEditorDlg@@QAE@VCRect@@IHH0@Z)
Определение структуры
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//MenuEditorDlg.h
class CMenuEditorDlg : public CDialogEx
{
...
protected:
    class BLOCK
    {
    private:            
                //structure for write 
        #pragma pack(push)
        #pragma pack(1)
        struct BLOCK_INFO_FILE
        {
            MY_OPENGL_MATH::vertex top_left_vert, bottom_right_vert;
                        ...
        };
...

Само пространство
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//OpenGL.h
namespace MY_OPENGL_MATH
{
    struct vector
    {
        float x, y, z;
        vector();
        vector(float x_in, float y_in, float z_in)
        {
            x = x_in;
            y = y_in;
            z = z_in;
        }
    };
    typedef vector vertex;
    struct rgb
    {
        GLubyte r, g, b;
        rgb();
        rgb(GLubyte r_in, GLubyte g_in, GLubyte b_in)
        {
            r = r_in;
            g = g_in;
            b = b_in;
        }
    };
    struct rgba
    {
        GLubyte r, g, b, a;
        rgba();
        rgba(GLubyte r_in, GLubyte g_in, GLubyte b_in, GLubyte a_in)
        {
            r = r_in;
            g = g_in;
            b = b_in;
        }
    };
    struct tex_coord
    {
        float u, v;
        tex_coord()
        {
 
        }
        tex_coord(float u_in, float v_in)
        {
            u = u_in;
            v = v_in;
        }
    };
}

OpenGl.h подключен через stdafx.h. Без перемененных vertex top_left_vert, bottom_right_vert в структуре BLOCK_INFO_FILE все работает.
Пробовал объявить структуру вне классов, подключал заголовочный OpenGl.h в MenuEditorDlg.h ничего не помогло.
Подскажите, в чем проблема может заключаться?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2016, 10:18
Ответы с готовыми решениями:

Указание типа переменной и ссылки при объявлении\инициализации
Здравствуйте! Возник такой вопрос-зачем нужно указывать тип ссылки при ее...

Сравнение строки в структуре с переменной типа char
Есть некая функция Х которая возвращает кол-во строк структуры Poezda a, строка...

Не возникает ли коллизия имен, если использовать два пространства имен, и в каждом из них будут одноименные?
Вот например namespace nms1 { int gh; } namespace nms2 { int gh;

Ошибка при объявлении типа
Как устранить ошибку? class B; class A { public: B getB() { return...

Что значит * при объявлении переменной?
Пытаюсь разобраться в коде, предоставленном сторонними разработчиками в...

2
Ilot
Эксперт С++
1831 / 1189 / 342
Регистрация: 16.05.2013
Сообщений: 3,139
Записей в блоге: 5
Завершенные тесты: 1
07.07.2016, 10:25 2
А конструктор кто писать будет?
C++
1
vector(): x(), y(), z() {}
1
xKIVIx
0 / 0 / 1
Регистрация: 21.06.2016
Сообщений: 14
Завершенные тесты: 1
07.07.2016, 10:32  [ТС] 3
Спасибо. Определил конструктор, все заработало.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.07.2016, 10:32

Программа вылетает при объявлении переменной класса
При создании переменной класса tree программа вылетает. Не понимаю, в чём дело....

Взятие адреса у константной переменной при объявлении
Можно пример?

Ошибка компилятора при объявлении переменной в другом файле
Здравствуйте, подскажи пожалуйста почему возникает ошибка ||error: ld...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru