Ich programmiere in C++ für GTA Mods. Deshalb verwende ich ScriptHook V.C++ typedefs kollidiert mit Klassen
In types.h gibt es diese:
typedef DWORD Void;
typedef DWORD Any;
typedef DWORD uint;
typedef DWORD Hash;
typedef int Entity;
typedef int Player;
typedef int FireId;
typedef int Ped;
typedef int Vehicle;
typedef int Cam;
typedef int CarGenerator;
typedef int Group;
typedef int Train;
typedef int Pickup;
typedef int Object;
typedef int Weapon;
typedef int Interior;
typedef int Blip;
typedef int Texture;
typedef int TextureDict;
typedef int CoverPoint;
typedef int Camera;
typedef int TaskSequence;
typedef int ColourIndex;
typedef int Sphere;
typedef int ScrHandle;
Und die natives.h verwendet diese Typen:
namespace PLAYER
{
static Ped GET_PLAYER_PED(Player player) { return invoke<Ped> (0x43A66C31C68491C0, player); } // 0x43A66C31C68491C0 0x6E31E993
static Ped GET_PLAYER_PED_SCRIPT_INDEX(Player player) { return invoke<Ped>(0x50FAC3A3E030A6E1, player); } // 0x50FAC3A3E030A6E1 0x6AC64990
...
Jetzt wollte ich eine Klasse Spieler machen. Aber immer wieder Namenskonflikte und ich kann keine andere Lösung finden, um sie zu lösen, als meine Klassen umzubenennen. Gibt es eine andere Art und Weise? Meine Klassen befinden sich in einem Namespace, aber es bleibt in Konflikt.
Sind die typedefs in einem Namespace? – NathanOliver
Unabhängig davon, 'typedef DWORD Void;' sieht fraglich aus? – Barry
nein, die typedefs sind nicht in einem Namespace – stulleman