初めて質問させていただきます、VC++初心者のれんと申します。
C++ではある程度の経験があり、
かつてファイルから読み込んだデータを処理するクラスを作成しました。
このクラスのコンストラクタはファイルポインタを引数としています。
これをVC++に移植しようとしているのですが・・・
まずAppWizardでプロジェクトを生成したのですが、
どの場所に以下の記述をすればいいのかわかりません。
FILE* fp;
fp = fopen(aaa.txt, r);
Data data(fp);
ちなみにオブジェクトdata は、
データ追加入力用に作成したダイヤログのクラス
及びViewクラスから参照する予定です。
初歩的な質問で申し訳ありませんが、よろしくお願い致します。
MFCで メニューのファイル開くから処理させるなら
ドキュメント クラスの
OnOpenDocument() や Serialize(CArchive& ar)
あたり
もうちょっと、開発環境や やりたい事を書いたほうがいいのでは
質問が言葉たらずだったでしょうか?
やりたいことは、最初にファイルからデータを構造体に読み込み、
そこにデータの追加や変更・削除をし、そのたびに画面表示したい、
という単純なことです。
実際に使用する構造体や各処理をするメンバ関数はすでにできています。
MSDOS上での動作確認はできているのですが、
マウスを使用したいため入力部分をダイヤログにしようと、VC++に挑戦しています。
C++ならメイン関数のあるファイルに#include Data.h などとして、
DATA data(FILE* fp); などとオブジェクトを生成するところですが、
VC++ではどこでオブジェクトを生成するべきかがわからないのです。
最初に一度だけファイルから構造体にデータを読み込めばいいので、
またオブジェクトはただ1つ生成すれば事たりるので、
グローバルな位置で生成したいのですが、どこがいいのでしょうか?
環境はVC++6.0です。よろしくお願い致します。
>MSDOS上での動作確認はできているのですが、
>マウスを使用したいため入力部分をダイヤログにしようと、VC++に挑戦しています。
>
>C++ならメイン関数のあるファイルに#include Data.h などとして、
>DATA data(FILE* fp); などとオブジェクトを生成するところですが、
>VC++ではどこでオブジェクトを生成するべきかがわからないのです。
VC++ というのは C/C++ コンパイラーと Windows で動作するアプリケーションや
モジュールが作成できる統合開発環境とを組み合わせた商品(製品)のことですが、
あなたはウィンドウアプリケーションかコンソールアプリケーションかのどちらを
目指しているのでしょうか?
マウスを利用するということですが、どのような使い方がなさりたいのですか?
ダイアログを入力部分にするということとマウスを使うということのそれぞれに
ついても説明していただけますか?
VC++ は C/C++ コンパイラーとしてみれば他のコンパイラーと特に変わったことが
出来る(出来ない)ということは余りありません
ただ、ウインドーアプリケーションとコンソールアプリケーションとではコードの
書き方にかなり違いがあるように見えるかもしれませんが、それはコンパイラーに
固有のことではない部分がほとんどだと思います
APPウィザードで作成されたVC++ MFC アプリが生成したクラスの起動の順番が
理解できていないため、どこで呼び出せばよいか解らないと想像いたしました。
まず、AppクラスのInitInstance()関数が実行されます。
ダイアログベースの場合はこの関数でダイアログを、
SDI、MDIの場合はドキュメントテンプレートを定義したあと
メインフレーム、ドキュメント、Viewが生成されます。
ダイアログベースの場合、ダイアログ生成時にOnInitDialog();が最初に一回呼ばれます
SDI、MDIの場合は
メインフレームはOnCreate
ドキュメントはOnNewDocument OnOpenDocument
ViewはOnInitialUpdate();
などが一般的な初期処理を記述する場所だと思います。
(コンストラクタで行う場合もありますが)
詳しいことはVC++ MFCリファレンスの
テクニカルノート 22: 標準コマンドの実装
テクニカルノート 25: ドキュメント、ビュー、フレームの作成
などを読まれるとよろしいかと思います。
また、SDI、MDIアプリを作成するのでしたらドキュメント、ビュー、フレームの関係の勉
強は必須ですので、MFCの入門書を片手にしたほうがよろしかろうと思います。