Форум программистов, компьютерный форум CyberForum.ru

VS 2013 и ООП - C++

Восстановить пароль Регистрация
 
druidich
 Аватар для druidich
30 / 30 / 4
Регистрация: 21.05.2012
Сообщений: 428
04.02.2014, 21:07     VS 2013 и ООП #1
столкнулся с проблемой. вроде пытаюсь освоить Directx11 по урокам (не помню ника, с этого форума ). Так вот, столкнулся с проблемой, а именно :
файд inputListened.h
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
#pragma once
#include "InputCode.h"
 
namespace D3D11FrameWork{
 
    struct  MouseEvent  {
        MouseEvent(int nx, int ny) : x(nx), y(ny) {}
        int x;
        int y;
    };
 
    struct MouseEventClick : public MouseEvent{
        MouseEventClick(eMouseKeyCodes b, int nx, int ny) : MouseEvent(nx, ny), btn(b){}
        const eMouseKeyCodes btn;
    };
 
    struct MouseEventWheel : public MouseEvent{
        MouseEventWheel(int nwhell, int nx, int ny) : MouseEvent(nx, ny), wheel(nwhell){}
        int wheel;
    };
 
    struct KeyEvent {
        KeyEvent(wchar_t c, eKeyCodes kc) : wc(c), code(kc){}
        const wchar_t wc;
        const eKeyCodes code;
    };
 
    class InputListener{
    public:
        virtual bool MousePressed(const MouseEventClick &arg){ return false; }
        virtual bool MouseReleased(const MouseEventClick &arg){ return false; }
        virtual bool MouseWheel(const MouseEventWheel &arg){ return false; }
        virtual bool MouseMove(const MouseEvent &arg){ return false; }
        
        virtual bool KeyPressed(const KeyEvent &arg){ return false; }
        virtual bool KeyRealesed(const KeyEvent &arg){ return false; }
    };
}
кусок файла InputMgr
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
    void InputMgr::m_eventKey(const eKeyCodes KeyCode, const wchar_t ch, bool press){
        for (auto it = m_Listened.begin(); it != m_Listened.end(); ++it){
            if (!(*it))
                continue;
            if (press == true){
                if ((*it)->KeyPressed(KeyEvent(ch, KeyCode)) == true)
                    return;
            }
            else{
                if ((*it)->KeyReleased(KeyEvent(ch, KeyCode)) == true)
                    return;
            }
        }
в котором студия ругается на
Ошибка 1 error C2027: использование неопределенного типа "D3D11FrameWork::InputListened"
Ошибка 2 error C2227: выражение слева от "->MouseMove" должно указывать на тип класса, структуры или объединения либо на универсальный тип

Как так ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.02.2014, 21:07     VS 2013 и ООП
Посмотрите здесь:

C++ Не работает функция gets() в VS 2013
C++ Компиляция на MVS 2013
C++ VC C++ 2013
MS VS 2013 Ultimate C++
C++ Visual Studio 2013 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
04.02.2014, 21:49     VS 2013 и ООП #2
Цитата Сообщение от druidich Посмотреть сообщение
Как так ?
Вы бы номера строк что ли указали по ошибкам.
druidich
 Аватар для druidich
30 / 30 / 4
Регистрация: 21.05.2012
Сообщений: 428
04.02.2014, 21:52  [ТС]     VS 2013 и ООП #3
Tulosba, сорри. Ругается на строки :
C++
1
if ((*it)->KeyPressed(KeyEvent(ch, KeyCode)) == true)
C++
1
if ((*it)->KeyReleased(KeyEvent(ch, KeyCode)) == true)
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
04.02.2014, 21:57     VS 2013 и ООП #4
Цитата Сообщение от druidich Посмотреть сообщение
Ругается на строки :
Ошибка 1 на строку 6, ошибка 2 на строку 10, так что ли?
druidich
 Аватар для druidich
30 / 30 / 4
Регистрация: 21.05.2012
Сообщений: 428
04.02.2014, 21:59  [ТС]     VS 2013 и ООП #5
Tulosba,
C++
1
if ((*it)->KeyPressed(KeyEvent(ch, KeyCode)) == true)
error C2027: использование неопределенного типа "D3D11FrameWork::InputListened"
error C2227: выражение слева от "->MousePressed" должно указывать на тип класса, структуры или объединения либо на универсальный тип

C++
1
if ((*it)->KeyReleased(KeyEvent(ch, KeyCode)) == true)
error C2027: использование неопределенного типа "D3D11FrameWork::InputListened"
error C2227: выражение слева от "->KeyReleased" должно указывать на тип класса, структуры или объединения либо на универсальный тип

вот так вот
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
04.02.2014, 22:04     VS 2013 и ООП #6
druidich, хедер (inputListened.h) включен в сишник, где ошибки проскакивают?
druidich
 Аватар для druidich
30 / 30 / 4
Регистрация: 21.05.2012
Сообщений: 428
05.02.2014, 08:09  [ТС]     VS 2013 и ООП #7
Tulosba, хедер подключен.
C++
1
#include "InputListener.h"
гуглил, пишут мол такие ошибки появляются в студии, начиная с 12 версии.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
05.02.2014, 08:24     VS 2013 и ООП #8
Цитата Сообщение от druidich Посмотреть сообщение
гуглил, пишут мол такие ошибки появляются в студии, начиная с 12 версии.
Довольно сомнительно. Залейте проект сюда посмотреть.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.02.2014, 08:32     VS 2013 и ООП #9
m_Listened - это что? Как объявлялась?
druidich
 Аватар для druidich
30 / 30 / 4
Регистрация: 21.05.2012
Сообщений: 428
05.02.2014, 08:56  [ТС]     VS 2013 и ООП #10
Tulosba, извините, щас полностью проектом скинуть не могу (все весит 150 метров! как так ?),тк интернет использую 3G и часто рвется. Вы не против если я скину на выходных ?

Добавлено через 21 минуту
alsav22,
"InputMgr.h"
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
#pragma once
#include "InputCode.h"
#include "stdafx.h"
 
namespace D3D11FrameWork{
    class InputListened;
 
    class InputMgr{
        void Init();
        void Close();
 
        void Run(const UINT &msg, WPARAM wParam, LPARAM lParam);
        void AddListened(InputListened *Listened);
        void SetWinRect(const RECT &winrect);
 
    private:
        void m_eventcursor();
        void m_eventMouse(const eMouseKeyCodes KeyCode, bool press);
        void m_mouseWhell(short Value);
        void m_eventKey(const eKeyCodes KeyCode, const wchar_t ch, bool press);
 
        std::list<InputListened*> m_Listened;
        RECT m_windowrect;
        int m_curx;
        int m_cury;
        int m_MouseWheel;
    };
}
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.02.2014, 09:22     VS 2013 и ООП #11
class InputListened где объявлен?

Добавлено через 2 минуты
Это, случайно, не class InputListener?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.02.2014, 11:48     VS 2013 и ООП
Еще ссылки по теме:

C++ C++ Visual studio 2013
C++ Кракозябры в MSVS 2013
Fopen в vs 2013 C++

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

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
05.02.2014, 11:48     VS 2013 и ООП #12
druidich, строку 6 закомментируйте.
Yandex
Объявления
05.02.2014, 11:48     VS 2013 и ООП
Ответ Создать тему
Опции темы

Текущее время: 03:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru