• ベストアンサー

どういう処理でしょう?

VC初心者です。他の人が作成したソースをみていますが、 次の2行の意味がさっぱり分かりません。 処理としてはこの2行でDLLのロードをしているらしいのですが・・・ SetSize(nNumLib+nFindLib+1, nAdd); if(m_pData[nNumLib+nFindLib].Load((LPCTSTR)strFindName)) 最初のSetsizeとは領域確保でいいのでしょうか?? m_pDataとはなんなのでしょう。 ヘルプには「TIMESTAMP_STRUCT 型のオブジェクトへのポインタが格納されます」 と書いてありますが、何のことやらさっぱりです。 私自身よく分かっていないので、補足する必要があれば指摘して下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • Musaffah
  • ベストアンサー率36% (37/101)
回答No.2

確かにこれだけでは何とも言えませんね。 直感でいくと、恐らくこんな感じでしょう。 1行目:何かの配列のサイズを新しく設定 2行目:strFindName変数にある文字列で何かをロード (m_pData[]が何のクラス配列か不明なので・・・) 恐らく、その2行のコードが書かれているクラスがCArray関係のクラス(CObArrayといった感じでC~Arrayという名前のクラス)を継承していると思うのですが・・・。 1)その2行が書かれているソースは何のクラスなのでしょうか? 2)m_pDataは何のクラス配列なのか? それが分かれば大体の見当がつくと思います。 1)について。 SetSize()が自作関数でないのであれば、多分CArray関係のクラスを継承したクラスであると思います。 質問者さんが見ているソース(#####.cpp)のヘッダファイル(####.h)を見ると、 class C###### : public CArray ~~~~~~~~~~~~~ { public: C#####();     ・     ・     ・     ・ というのが書いてあると思います。 もし書いてあれば、C#####クラスは「CArrayクラスを継承します(下線部の意味)」という宣言です。 この宣言がされていると、C#####というクラスはCArrayが持つ機能を引き継いでいる(使用できる)ということになります。 次に、VC(バージョンは何でしょう?)でm_pData変数を右クリックして「m_pDataの定義位置を参照」を選択すると、この変数の定義型が分かると思います。 まずはそれが分かってからですね。

ruby7
質問者

お礼

大変に参考になりました。 おっしゃる通りCArray関連の継承のようでした。 単なる配列だと思っていたら中へ入っていけたので驚きました・・・ デバッグではnAddは10となっていたので、 てっきり10バイトのサイズを確保して、そこへDLLを読み込むと解釈したので わずか10バイトで何ができるのか???と状況がまるで飲み込めない状態でした。 このヒントを基にもう少し整理してみたいと思います。 1番の方への報告も兼ねさせて頂きます。 どうも有り難うございました。

その他の回答 (1)

回答No.1

これだけではわからないと思います。 SetSizeは何のクラスのメンバ関数ですか? m_pDataは、どこで領域を確保して、なにをセットしてますか? VCでグローバル検索するなどして調べてください。

ruby7
質問者

お礼

回答ありがとうございます。 詳細は2の方の返信に書いておきました。