• ベストアンサー

MFCで値の渡し方について

MFCで、プログラムを作成しているのですが、 bool CPitPosInfo::AnalyzePacket( char* pData, int size ) { ここで、pDataとsizeの内容を解析するプログラムです。 } という関数にm_pDataをpDataへm_DataSizeをsizeへ値を渡すというのはどうしたら良いのでしょう・・・。 あまりにも初歩的過ぎて、誰にも聞けません。 教えてください。

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

  • ベストアンサー
回答No.2

 こんにちは。う~ん、チョッと不明瞭です・・・。 >>関数にm_pDataをpDataへm_DataSizeをsizeへ値を渡すというのはどうしたら良いのでしょう・・・。  パラメータが[out]なのでしょうか? でしたら、 bool CPitPosInfo::AnalyzePacket( char*& pData/*[out]*/, int& size/*[out]*/ ) { pData = m_pData; size = m_DataSize; //ここで、pDataとsizeの内容を解析するプログラムです。 }  と言う事です。  複写するのなら話は変わって来ます。 bool CPitPosInfo::AnalyzePacket( char* pData/*[out]*/, int size/*[in]*/ ) { const int len = std::min(m_DataSize, size); if(m_pData == NULL || pData == NULL || len <= 0) return false; //ここで、pDataとsizeの内容を解析するプログラムです。 //解析後にpDataにバッファ内容を複写して出力する std::copy(m_pData, m_pData + len, pData); //成功した return true;

その他の回答 (1)

回答No.1

入門書を読みましょう。 そうでないと、単語の意味がわからないので、以下の説明の 意味もわからないでしょう。 > という関数にm_pDataをpDataへm_DataSizeをsizeへ値を渡す > というのはどうしたら良いのでしょう・・・。 publicでstaticでない通常のメンバ関数はそのクラスの インスタンスからしか呼べません。 CPitPosInfo info; // CPitPosInfoのインスタンス char * m_pData = new char[ 256]; int m_DataSize = 10; bool result = info.AnalyzePacket( m_pData, m_DataSize); AnalyzePacket()がpublicでない場合はCPitPosInfoクラス メンバ又はその派生クラスのメンバからしか呼べません。

関連するQ&A