我正在关注2012年的一个Fleeps旧教程。我遇到了一个speedbump,这个错误:成员声明中不允许使用限定名称。 我试过更改SDK,在main.cpp文件中定义/声明类。这些都没有奏效。 这是我的头文件,我遇到了错误。
#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];
};
当我宣布&#34; void Hacks ::&#34; ...函数时,错误正在逐渐消失。有什么建议吗?
答案 0 :(得分:2)
也许乍一看nikau6的答案并不十分清楚,因为该代码似乎与OP中的代码相同。
因此,解决方案是从所有声明中删除 Hacks ::
答案 1 :(得分:1)
在成员声明中不使用限定名称。你的书中使用了哪种编译器?
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];
};
答案 2 :(得分:0)
在Visual Studio 2019中构建旧版Direct Show筛选器时,我必须将Conformance Mode
设置为No。这使代码不符合标准/permissive-
以上是一些人所说的不良实践。但是对于遗留代码,通常不适合(或不可能)使其遵循最佳实践。