C++ 从封闭源库中检索静态指针,该库未被公共接口公开

C++ 从封闭源库中检索静态指针,该库未被公共接口公开,c++,memory,C++,Memory,我使用的dll代码我无法更改。我有一个公开我正在使用的类表面的公共接口 dll的代码包含类似以下内容: static Texture staticTexture[MAXTEXTURECOUNT]; static Texture *staticTextureCurrent = NULL; static Texture *staticGetTextureById(int id); class Texture { public: int _id; ... void *

我使用的dll代码我无法更改。我有一个公开我正在使用的类
表面的公共接口

dll的代码包含类似以下内容:

static Texture  staticTexture[MAXTEXTURECOUNT];
static Texture *staticTextureCurrent = NULL;
static Texture *staticGetTextureById(int id);

class Texture
{
public:
    int     _id;

...
    void   *_dib;
...
};

void Surface::DrawSetTexture(int id)
{
    Texture *texture = staticGetTextureById(id);
    staticTextureCurrent = texture;
}
公共头文件不会以任何方式公开纹理类。我需要访问纹理所指向的内存::dib。理想情况下,我希望能够从任何地方调用
staticGetTextureById
,但内存就是我想要的。 不过,我或多或少知道纹理类的外观

我已经尝试过在调用DrawSetTexture后通过摆弄cpu寄存器来恢复纹理指针,但根本没有成功


你知道如何检索这个指针吗?我会很高兴看到任何解决方案,不管它有多黑客,只要它不崩溃,并且工作可靠。我需要一种更快的方法来使用给定的内存。

根据我的理解,类在设置方式上与C中的结构类似。所以,也许通过使用ptrToClassObject+offset,它就可以工作了。有一种方法可以获得类成员的偏移量,我只是不知道该如何设置。

我认为这不起作用,原因有很多:1。我不知道现在的密码。我有一些相当古老的代码。2.函数本身是静态的,不是类本身的一部分,所以它不应该这样公开。