C++ 名称空间;绕道而行”;“没有成员”;uint8“t”;

C++ 名称空间;绕道而行”;“没有成员”;uint8“t”;,c++,C++,我一直在尝试为一个名为csgo的游戏创建一个dll程序。但我的主要问题是,在我修复这个bug之前,它不会工作 <namespace "Detours" has no member "uint8_t"> 加 #包括 然后删除“Detours::uint8\t”的“Detours”部分。只需使用常规uint8\u t,我认为您不需要包装器。迂回命名空间没有定义uint8\u t类型(因为它来自Microsoft,我认为他们会将其命名为USHO

我一直在尝试为一个名为csgo的游戏创建一个dll程序。但我的主要问题是,在我修复这个bug之前,它不会工作

<namespace "Detours" has no member "uint8_t"> 

#包括

然后删除“Detours::uint8\t”的“Detours”部分。只需使用常规uint8\u t,我认为您不需要包装器。

迂回命名空间没有定义
uint8\u t
类型(因为它来自Microsoft,我认为他们会将其命名为
USHORT
)。它在全局命名空间的STL中可用。所以要解决这个问题,不要指定类型来自何处(哪个命名空间)

oEndScene=(EndScene)Detours::X86::DetourFunction((uint8_t*)d3d9Device[42],(uint8_t*)hkEndScene);
并确保包含
stdint.h
inttypes.h
头文件以获取类型


附加:使用
reinterpret\u cast()
而不是
(uint8\u t*)

当我使用“reinterpret”时,它不起作用_cast@Nikodior如果它不起作用,那么它可能是一件好事。这意味着,如果你尝试以正常的方式进行操作,可能会导致运行时错误。请检查
d3d9Device的类型[42]
hkendsecene
并查看是否可以将其转换为指针。您的代码在哪里?
oEndScene = (EndScene)Detours::X86::DetourFunction((Detours::uint8_t*)d3d9Device[42], (Detours::uint8_t*)hkEndScene);
#include <cstdint>