DLL内存损坏
Memory Corruption on DLL
我的一个程序中存在内存损坏问题。我讲这个笑话是为了看看我有什么问题(或者谷歌能帮我(我有一个DLL THROUGH类函数,它返回b2World类型的变量,我可以创建新的物理体(引用内存(。当我的程序(使用DLL(试图创建任何物理实体时,事实上,为了进行大量调试,我意识到当请求更多内存时,数据会发生变化。然而,当我在同一个DLL中执行完全相同的代码来创建主体时,这不会发生在dll中,我把dllimport和dllexport都放进去了,除了在静态和程序中链接Box2D。dll作为dll和程序我都有代码。我使用的是Visual Studio(但我在使用另一个编译器的代码块时也遇到了同样的问题(。
我希望你能帮助我,因为我在谷歌上搜索过,没有发现任何东西(可能是错误的搜索词(。
- DLL
- 世界.h
- 世界.cpp
程序:
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导出类,你应该使用接口来代替-阅读http://www.codeproject.com/KB/cpp/howto_export_cpp_classes.aspx.此问题的解决方案可能是使用当前使用的运行时版本重新编译dll。在这种情况下,更好的解决方案应该是将此库静态链接到您的项目。
相关文章:
- 如何针对特定情况调试和修复此双自由内存损坏问题
- 正在调试 malloc():新内存损坏
- 仅特定内核计数上的 MPI 内存损坏
- C++程序错误:malloc():内存损坏
- 内存地址是否由于未对齐的内存地址而损坏?
- 调用std::函数成员时内存损坏
- 通过分配大量内存来跟踪堆损坏
- C++ 内存损坏检测
- 由于标头中的 #define 不匹配而导致内存损坏
- C STD ::线程中的种族状况或内存损坏
- malloc()内存损坏仅通过为特定数量编写int数组
- 字符串标记化期间的内存损坏
- 从检测到 glibc 正常退出 - malloc():内存损坏
- 放置在外部 DLL 中的类中的字符串数据的内存损坏
- std :: string ::擦除会导致内存损坏
- 编译器如何检测内存损坏
- 获得MAC地址的代码似乎会损坏内存,但仅在发布构建中而不是调试构建
- Visual Studio在使用sockaddr_storage时会损坏内存
- 构造函数中的字段初始化会损坏内存
- 字符串结束字符会损坏内存吗?缓冲区[大小]='\0';