SFML 和 Box2D SetUserData 无法将参数从 const char [4] 转换为 void *
SFML and Box2D SetUserData can't convert argument from const char [4] to void *
我正在用 sfml 和 box2d 编写一个平台游戏,我想编写一些我可以推动的盒子,但出于某种原因 body->SetUserData("box")
说它不能 convert const char [4] to void *
。我正在学习教程。在教程中一切正常,但对我来说出现此错误:
Error C2664 'void b2Body::SetUserData(void *)': cannot convert argument 1 from 'const char [4]' to 'void *'
教程:(俄语)
https://www.youtube.com/watch?v=-eJXg2tGcyM
盒子代码:
b2PolygonShape shape;
shape.SetAsBox(30 / SCALE, 30 / SCALE);
b2BodyDef bdef;
bdef.type = b2_dynamicBody;
bdef.position.Set(600 / SCALE, 100 / SCALE);
b2Body *body = World.CreateBody(&bdef);
body->CreateFixture(&shape, 2);
body->SetUserData("box");
该教程可能依赖于 VS 中的不一致行为,该行为允许将字符串文字转换为指向 char
的非 const 限定指针。因此,您应该将代码修改为 const-correct(推荐)或使用 /Zc:strictStrings-
compilation option(不推荐)启用该旧行为。
我正在用 sfml 和 box2d 编写一个平台游戏,我想编写一些我可以推动的盒子,但出于某种原因 body->SetUserData("box")
说它不能 convert const char [4] to void *
。我正在学习教程。在教程中一切正常,但对我来说出现此错误:
Error C2664 'void b2Body::SetUserData(void *)': cannot convert argument 1 from 'const char [4]' to 'void *'
教程:(俄语) https://www.youtube.com/watch?v=-eJXg2tGcyM
盒子代码:
b2PolygonShape shape;
shape.SetAsBox(30 / SCALE, 30 / SCALE);
b2BodyDef bdef;
bdef.type = b2_dynamicBody;
bdef.position.Set(600 / SCALE, 100 / SCALE);
b2Body *body = World.CreateBody(&bdef);
body->CreateFixture(&shape, 2);
body->SetUserData("box");
该教程可能依赖于 VS 中的不一致行为,该行为允许将字符串文字转换为指向 char
的非 const 限定指针。因此,您应该将代码修改为 const-correct(推荐)或使用 /Zc:strictStrings-
compilation option(不推荐)启用该旧行为。