C++ DLL上的内存损坏

C++ DLL上的内存损坏,c++,dll,box2d,C++,Dll,Box2d,我的一个程序内存损坏。我讲这个笑话是为了看看我的问题是什么(或者谷歌已经能够帮助我) 我有一个DLL通过类函数返回一个b2World类型的变量,我可以创建新的物理实体(引用内存)。当我的程序(使用DLL)试图创建任何物理实体时,实际上为了进行大量调试,我意识到当请求更多内存时,数据会发生变化。但是,当我使用完全相同的代码在同一个DLL中创建主体时,这并不会发生 在动态链接库中,我给他放了dllimport和dllexport,除了静态和程序中的链接Box2D。这两个dll作为dll和我的程序都有

我的一个程序内存损坏。我讲这个笑话是为了看看我的问题是什么(或者谷歌已经能够帮助我) 我有一个DLL通过类函数返回一个b2World类型的变量,我可以创建新的物理实体(引用内存)。当我的程序(使用DLL)试图创建任何物理实体时,实际上为了进行大量调试,我意识到当请求更多内存时,数据会发生变化。但是,当我使用完全相同的代码在同一个DLL中创建主体时,这并不会发生 在动态链接库中,我给他放了dllimport和dllexport,除了静态和程序中的链接Box2D。这两个dll作为dll和我的程序都有代码。 我正在使用VisualStudio(但是我在使用另一个编译器的代码块时遇到了同样的问题)

我希望你能帮助我,因为我搜索过谷歌,但什么也没找到(可能是错误的搜索词)

  • 动态链接库
节目:

bool Gameloop::load(){
    m_world = new World();  
    b2World &world = m_world->getWorld();
    b2BodyDef def;
    def.position.Set(100,100);
    def.type = b2_staticBody;
    b2Body *body = world.CreateBody(&def);
    b2PolygonShape box;
    box.SetAsBox(5,5);
    b2FixtureDef fixtureDef;
    fixtureDef.shape = &box;
    body->CreateFixture(&fixtureDef);
    return true;
}

(CreateBody和CreateFixture中的问题)

可能您的dll是使用当前使用的运行库的另一个版本编译的。通常情况下,您不能从dll导出类,您应该改用接口-阅读此内容。此问题的解决方案可能是使用当前使用的运行时版本重新编译dll。在这种情况下,更好的解决方案应该是静态地将此库链接到您的项目。

对于不会说西班牙语的人来说,这将很难回答。但是,至少要向我们展示导致问题的代码。理想情况下,尽量缩小范围。然后,即使可能存在语言障碍,我们也可以提出一些建议。请发布一些代码来演示问题。我可以用英语阅读,但我不能用英语向我们展示导致问题的代码。--DLL--World.h World.cpp--Program--Gameloop.h Gameloop.cpp(问题!!!)