Cout + Float,没有调试错误,在发布运行时崩溃



我在2小时前看到了一个帖子,是关于我几天前遇到的一个问题,我也在寻找一个解释…

https://stackoverflow.com/questions/25281294/c-cout-float-fail-while-printf-do-the-job

我在cout中遇到了完全相同的行为,它根本不喜欢float…

我有一个单独的线程userinterface,用openGL,与一个回调函数附加在一个按钮在我的主线程。

class ObjectA//My class
{
    private:
      float light;
      float surface;
      float height;
    public:
      ObjectA();
      ~ObjectA();
      float r_light();
      float r_surface();
      float r_height();
      void render(int x, int y); // Not implemented when bug occured
}
ObjectA::ObjectA(void)
{
    light = 0;
    surface = 0;
    height = 0;
}
float ObjectA::r_light()
{
    return this->light;
}
void displayResult(ObjectA * a) //The callback function attached to the UserInterface-button
{
    cout << a->r_light() << endl;
}

当我运行它时,程序严重崩溃,我不得不手动完成这个过程…我唯一的解决方案是用printf代替cout,但是我不太喜欢这样。

有人知道为什么我不能计算这个值吗?

我知道了,我的一个朋友也有同样的问题。

_setmode(_fileno(stdout), _O_TEXT);

并恢复正常行为。他在告诉我一些关于一个该死的vc++编译器和openGL旧版本的事情。(Init openGl world螺丝stdout以某种方式,如果我理解)

相关内容

  • 没有找到相关文章

最新更新