【问题标题】:C++ Code Executes Only When the Program Is Run From The TerminalC++ 代码仅在程序从终端运行时执行
【发布时间】:2011-05-19 16:07:31
【问题描述】:

我有一个奇怪的错误,似乎只有在程序不是从终端执行时才会发生。这是我的项目: https://github.com/elliotpotts/Troll/ https://github.com/elliotpotts/Troll/issues/2

查看Troll::State::keyPressed() 函数。出于某种原因,当我从终端运行程序时,一切都很好并且应用程序存在,但是当我将它作为 GUI 程序运行时,应用程序不会退出。我想不出为什么。在此先感谢,呃。

编辑:很抱歉没有添加 Ogre 标签,也没有发布 keyPressed 函数,这里是:

void Troll::State::keyPressed(const OIS::KeyEvent& event){
    if(event.key == OIS::KC_Q) {
        mCreator->stop();
    };
};

我也试过添加文件输出来测试它:

void Troll::State::keyPressed(const OIS::KeyEvent& event){
    std::cout << "Q was pressed" << std::endl;
    std::fstream file("log");
    file << "Q was pressed";
    file.close();
    if(event.key == OIS::KC_Q) {
        mCreator->stop();
    };
};

从终端运行时,此方法有效,否则无效。补充说明一下,我目前还没有正在尝试修复的功能调试器。埃尔。

【问题讨论】:

  • 抱歉,帮不上忙,但也许添加 ogre 标签可能会引起合适人的注意。
  • 你能在这里复制/粘贴keyPressed()的定义吗?
  • 也许 GUI 框架有自己的 KeyEvent 处理程序来获取密钥?
  • 您使用的是哪个 GUI 框架?你是如何通知按键的?
  • 我没有使用 GUI 框架,只使用了输入系统。但是我最近发现问题是由我的IDE引起的。我应该把它放在答案中并将其标记为正确吗?

标签: c++ ogre


【解决方案1】:

原来是 IDE 造成了问题,无论如何感谢您的帮助,嗯 :)

【讨论】:

    猜你喜欢
    • 2015-04-02
    • 2011-06-24
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-06
    • 1970-01-01
    相关资源
    最近更新 更多