【发布时间】:2018-06-23 15:47:40
【问题描述】:
我正在关注 2012 年的 Fleeps 旧教程之一。我遇到了一个减速带,这个错误:在成员声明中不允许限定名称。 我尝试更改 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];
};
当我声明“void Hacks::”...函数时出现错误。有什么建议吗?
【问题讨论】:
-
删除这些
Hacks::s。 -
我尝试更改 SDK,在 main.cpp 文件中定义/声明类。这些都不起作用——这表明遵循不教授 C++ 编程的教程是浪费时间。没有任何著名的 C++ 书籍会显示以这种方式编码的类出现此错误。
-
@songyuanyao 谢谢。这解决了这个问题,我现在可以编译项目了。虽然当我构建它时,它给了我这个错误“Error LNK2001: unresolved external symbol __vsnprintf”
-
您收到链接错误,因为旧版 DirectX SDK 与 VS 2015 或 VS 2017 不完全兼容。请参阅Where’s DXERR.LIB?。
-
目前没有理由花时间学习 Direct3 9。查看 DirectX 11。请参阅 this post。一本关于 Direct3D 9 的旧书/教程也很可能使用更古老的 C++ 编码风格,而不是现代 C++11/C++14 语言。
标签: c++ error-handling directx direct3d