SFML和Box2D SetUserData无法将参数从const char [4]转换为void *

问题描述 投票:-2回答:1

我在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"); 
c++ box2d sfml
1个回答
1
投票

该教程可能依赖于VS中的不符合行为,允许将字符串文字转换为非const限定的指向char的指针。因此,您应该将代码修改为const-correct(推荐),或者使用/Zc:strictStrings- compilation option(不推荐)启用旧的行为。

© www.soinside.com 2019 - 2024. All rights reserved.