- ベストアンサー
MFCで値の渡し方について
MFCで、プログラムを作成しているのですが、 bool CPitPosInfo::AnalyzePacket( char* pData, int size ) { ここで、pDataとsizeの内容を解析するプログラムです。 } という関数にm_pDataをpDataへm_DataSizeをsizeへ値を渡すというのはどうしたら良いのでしょう・・・。 あまりにも初歩的過ぎて、誰にも聞けません。 教えてください。
- みんなの回答 (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)
- Situgyosya
- ベストアンサー率41% (21/51)
入門書を読みましょう。 そうでないと、単語の意味がわからないので、以下の説明の 意味もわからないでしょう。 > という関数に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クラス メンバ又はその派生クラスのメンバからしか呼べません。