C++ Qualified name is not allowed in member declaration

44,347

Solution 1

Maybe nikau6's answer is not so clear at first sight because the code seems identical to the one in the OP.

So, the solution is to remove Hacks:: from all your declarations

Solution 2

While building a legacy Direct Show filter in Visual Studio 2019 I had to set Conformance Mode to No. This allows the code to not conform to the standard /permissive-

The above is poor practice as stated by several people. But with legacy code it's often the not appropriate(or possible) to make it follow best practices.

Solution 3

No qualified names to use in member declarations. Which compiler is used in your book ?

class Hacks {
    public:
        int m_Stride;

        void CreateFont(IDirect3DDevice9 *d3dDevice, std::string choiceFont);
        void InitializeMenuItems();
        void DrawText(LPCSTR TextToDraw, int x, int y, D3DCOLOR Color);
        void DrawMenu(IDirect3DDevice9 *d3dDevice);
        void DrawFilledRectangle(int x, int y, int w, int h, D3DCOLOR Color, IDirect3DDevice9 *d3dDevice);
        void DrawBorderBox(int x, int y, int w, int h, int thickness, D3DCOLOR Color, IDirect3DDevice9 *d3dDevice);
        void KeyboardInput();

        LPDIRECT3DTEXTURE9 texRed;
        LPDIRECT3DTEXTURE9 texGreen;
        LPDIRECT3DTEXTURE9 texBlue;
        LPDIRECT3DTEXTURE9 texWhite;

        D3DVIEWPORT9 ViewPort;

        LPD3DXFONT Font;

        struct d3dMenuHack {
            bool on;
            std::string name;
        };

        d3dMenuHack hack[MAX_MENU_ITEMS];
    };
Share:
44,347
Lukas Knudsen
Author by

Lukas Knudsen

I just do coding for fun :3 Currently study International Baccalaureate at Szczecin International School. My origin in Denmark, but i've been abroad for a high percentage of my life. My kids are cuter than yours though :3 #tower-of-pisa { font-style: italic; }

Updated on July 09, 2022

Comments

  • Lukas Knudsen
    Lukas Knudsen almost 2 years

    I am following one of Fleeps old tutorials from 2012. I have encountered a speedbump, this error: qualified name is not allowed in member declaration. I have tried changing the SDK, defining/declaring the class in the main.cpp file. None of this worked. This is my header file i am encountering the error in.

    #pragma once
    
    #include <Windows.h>
    #include "d3d9.h"
    #include <ctime>
    #include <iostream>
    
    #define D3DHOOK_TEXTURES
    #define MAX_MENU_ITEMS 6
    #define WALLHACK 0
    #define CUSTOM_CROSSHAIR 1
    #define NO_RECOIL 2
    #define UNLIM_AMMO 3
    #define AUTO_FIRE 4
    #define HIDE_MENU 5
    
    class Hacks {
    public:
        int m_Stride;
    
        void Hacks::CreateFont(IDirect3DDevice9 *d3dDevice, std::string choiceFont);
        void Hacks::InitializeMenuItems();
        void Hacks::DrawText(LPCSTR TextToDraw, int x, int y, D3DCOLOR Color);
        void Hacks::DrawMenu(IDirect3DDevice9 *d3dDevice);
        void Hacks::DrawFilledRectangle(int x, int y, int w, int h, D3DCOLOR Color, IDirect3DDevice9 *d3dDevice);
        void Hacks::DrawBorderBox(int x, int y, int w, int h, int thickness, D3DCOLOR Color, IDirect3DDevice9 *d3dDevice);
        void Hacks::KeyboardInput();
    
        LPDIRECT3DTEXTURE9 texRed;
        LPDIRECT3DTEXTURE9 texGreen;
        LPDIRECT3DTEXTURE9 texBlue;
        LPDIRECT3DTEXTURE9 texWhite;
    
        D3DVIEWPORT9 ViewPort;
    
        LPD3DXFONT Font;
    
        struct d3dMenuHack {
            bool on;
            std::string name;
        };
    
        d3dMenuHack hack[MAX_MENU_ITEMS];
    };
    

    The error is ocouring when i am declaring the "void Hacks::"... functions. Any suggestions?