Forums: VC++公開討議 (Thread #31568)

VC++プログラミングでいろいろとつまづき中ですw (2012-02-18 09:38 by blackzoro #62275)

ちょっとフォーラムという機能を使わせて頂きます。まだSF.JPの使い方がよくわからないところもあり、ブログ風にここのフォーラムを使って良いのかよくわからないのですが、もし良ければおつきあい頂ければうれしいです。

この前インテルHEXのチェックサム計算を自動で行いファイルを出力してくれるソフトをトゥイーさんに作って頂き大変助かっております。この場をお借りして感謝申しあげますm(_ _)m


その後、プログラムのデバッグ方法を教えてもらってインテルHEXファイルを読み込んでどのように出力ファイルを作成しているのかをVC++のEssential 2010のデバッグ機能で追っているのですが・・・  やっぱりVC++って難しいですねww(まあ、私の理解力がアレなだけだと思うのですが。)

ただ、VC++ Essential edition 2010が無料ということもあり、また自分がほしかった機能とかがこれで作れたりするというのはとてもすばらしいですね。もし自分でもプログラムが作れるとなるとかなり興奮します。
簡単に作れたらとか、クラスとかの動きとかをちゃんと理解できたらなぁと思うばかりです。




大まかな動きがわかったような気がしています。

int main(int argc, char** argv) {



IntelHEXFilePtr file(get_file(argc, argv));
ofstream out("output.hex");

if (out) {
for (IntelHEXFile::const_iterator i = file->begin(); i != file->end(); ++i) {
const IntelHEXRecordPtr& record = *i;
out << record->record() << endl;
}
}

return 0;
}


VC++って内部がどうなってるかとかよくわかんなかったとしても、ほとんどモジュール化されてるというか、これだけで全部ができているんですね・・・
ホントにわかりやすい。


初歩的な問題なんですが、
IntelHEXFilePtr file(get_file(argc, argv));

この”IntelHEXFilePtr”このPtrと付いたこの文字はプログラム中には検索がないんですが、これは何か特別な意味とかあるんでしょうか? もし良ければ教えて下さい。

Répondre à 62275×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: VC++プログラミングでいろいろとつまづき中ですw (2012-02-21 07:14 by toy_dev #62340)

IntelHEXFilePtr は、include/IntelHEXFile.hpp にて以下のように定義しています。

typedef boost::shared_ptr<IntelHEXRecord> IntelHEXRecordPtr;

boost::shared_ptr とはスマートポインタというものを定義するものです。
スマートポインタは、メモリ管理(メモリの解放)を自動で行なってくれる機構です。

typedef boost::shared_ptr<Xxx> XxxPtr;

と書いて使うのは、一般的な慣習で、Ptr という名前を付けなければいけないという制約があるわけではありません。
現時点ではとりあえず XxxPtr を使えばメモリ管理を気にする必要はないと覚えておけば良いと思います。

詳細を知りたい場合は、以下のページを参照してください。

・スマートポインタについて
http://www.ownway.info/Home/cpp/base/smartptr.html
Répondre à #62275

Répondre à 62340×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion