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(不推荐)启用该旧行为。