0

这是一个奇怪的问题,因为我不确定从哪里开始寻找。

首先,过去 10 年我没有做过任何 C++ 编程,所以可能是我忘记了一些事情。其次,我使用的 IDE 是基于 Eclipse 的(我从未使用过),并且是为基于三星 bada 的移动开发定制的(它启动了一个用于调试目的的模拟器)

我将我的代码示例作为图像发布,因为 StackOverflow 所见即所得编辑器似乎在解析 C++ 时出现问题。

[编辑] 由于投诉,我编辑了我的问题以删除图像。希望有帮助:)

我有以下头文件...

#include <FApp.h>
#include <FBase.h>
#include <FGraphics.h>
#include <FSystem.h>
#include <FMedia.h>

using namespace Osp::Media;
using namespace Osp::Graphics;

class NineAcross :
    public Osp::App::Application,
    public Osp::System::IScreenEventListener
{
    public:

    static Osp::App::Application* CreateInstance(void);

    public:
    NineAcross();
    ~NineAcross();

    public:     
    bool OnAppInitializing(Osp::App::AppRegistry& appRegistry);

    private:
    Image *_problematicDecoder;
};

...以及以下 cpp 文件...

#include "NineAcross.h"

using namespace Osp::App;
using namespace Osp::Base;
using namespace Osp::System;
using namespace Osp::Graphics;
using namespace Osp::Media;

NineAcross::NineAcross()
{
}

NineAcross::~NineAcross()
{
}

Application*  NineAcross::CreateInstance(void)
{
    // Create the instance through the constructor.
    return new NineAcross();
}

bool NineAcross::OnAppInitializing(AppRegistry& appRegistry)
{

    Image *workingDecoder;      
    workingDecoder->Construct();

       _problematicDecoder->Construct();

    return true;
}

现在,在我的 cpp 文件中,如果我注释掉读取_problematicDecoder->Construct();的行 ...我能够设置断点并愉快地跳过对workingDecoder上的 Constuct ()的调用。但是,一旦我取消注释读取_problematicDecoder->Construct();的行 ...我最终得到 IDE 告诉我...

“没有可用于“Osp::Media::Image::Construct()”的资源

换句话说,当我 从头文件中引用Image *image时,为什么我不能调试此代码?

有任何想法吗?

谢谢 :-)

4

2 回答 2

0

这通常意味着您正在单步执行一些您不拥有其源代码的代码。我在这里假设这Osp::Media::Image是一个由三星或类似提供的类,您没有 cpp 文件。因此,这意味着调试器无法在您使用Osp::Media::Image.

或者,您很有可能拥有该类的所有源代码,但 Eclipse 不知道它在哪里。在这种情况下,您可以在“调试配置”窗口下添加正确的目录。

于 2010-07-11T08:35:30.860 回答
0

好的,问题解决了。

这个想法是首先像这样新建一个 Image 实例......

_decoder = new Osp::Media::Image();

然后执行_decoder->Construct()。

有趣的是,这对现在来自 C# 世界的我来说似乎是显而易见的,尽管为什么我为workingDecoder发布的代码对我来说仍然有些神秘。预加载了 bada IDE 的示例项目似乎没有调用 new() 的事实让我相信这些示例可能已经过时了,我们不同步了。

要么就是这样,要么我真的很疯狂地脱离了 C++ 循环。

无论如何,非常感谢你们的努力。

赞赏:)

于 2010-07-11T10:34:58.250 回答