0

どこから調べたらよいかわからないという点で、これは奇妙な質問です。

まず第一に、私は過去 10 年間 C++ プログラミングをまったく行っていないので、いくつか忘れているのは私かもしれません。第二に、私が使用している IDE は Eclipse ベース (私は一度も使用したことがありません) であり、Samsung bada ベースのモバイル開発用にカスタマイズされています (デバッグ目的でエミュレーターを開始します)。

StackOverflow WYSIWYG エディターで 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

わかりました、問題は解決しました。

アイデアは、最初に Image のインスタンスを次のように新しく作成することです...

_decoder = 新しい Osp::Media::Image();

そして、_decoder->Construct() を実行します。

面白いことに、これは C# の世界からやってきた私にとってはあからさまに明らかなように思えますが、workDecoderのために投稿したコードが機能する理由は、まだ私にはやや謎です。bada IDE でプリロードされたサンプル プロジェクトが new() を呼び出していないように見えるという事実から、おそらくこれらのサンプルは時代遅れで同期が取れていないのではないかと思います。

それか、私は本当にC++ループから外れています。

とにかく、みんなの努力に感謝します。

感謝 :)

于 2010-07-11T10:34:58.250 に答える
0

これは通常、ソースを所有していないコードをステップ実行していることを意味します。Osp::Media::Imageこれは、Samsung が提供するクラスか、cpp ファイルがない類似のクラスであると想定しています。したがって、これは、関数の実行中は、デバッガーが現在のコード行を表示できないことを意味しますOsp::Media::Image

または、このクラスのすべてのソース コードを持っている可能性は十分にありますが、Eclipse はそれがどこにあるかを認識していません。この場合、[Debug Configurations] ウィンドウの下に正しいディレクトリを追加できます。

于 2010-07-11T08:35:30.860 に答える