またまたおねがいします。
C++ .NET 2003 MFC
void CoekakiView::OnDestroy()//終了時書き込み
{
CView::OnDestroy();
// TODO : ここにメッセージ ハンドラ コードを追加します。
CStdioFile fin;
if(!fin.Open(Line.txt,CFile::modeCreate | CFile::modeWrite |
CFile::typeBinary)){
AfxMessageBox(読込みファイを開けません);
return;
}
fin.Write(Ve_myPic,sizeof(Ve_myPic));
fin.Close();
}
}
}
またまたまちがえました。
vector<Picture> Ve_myPic;
void CoekakiView::OnDestroy()//終了時書き込み
{
CView::OnDestroy();
// TODO : ここにメッセージ ハンドラ コードを追加します。
CStdioFile fin;
if(!fin.Open(Line.txt,CFile::modeCreate | CFile::modeWrite |
CFile::typeBinary)){
AfxMessageBox(読込みファイを開けません);
return;
}
fin.Write(Ve_myPic,sizeof(Ve_myPic));
fin.Close();
}
というような感じなんですが じっこうすると
引数を'std::vecotor<_Ty>'から'const void *'に変換できません
ってでるんですが・・・
どうしたらよいでしょうか?
> fin.Write(Ve_myPic,sizeof(Ve_myPic));
できませんこんなこと。
では
vector で宣言したものを保存するにはどうしたらよいですか?
…てゆっかデタラメぢゃん。
CStdioFile fin;
fin.Open(Line.txt,CFile::modeCreate | CFile::modeWrite | CFile::typeBinary)
ファイル名がLine.txtでありながらバイナリ・オープンで、しかもCStdioFile?
> vector で宣言したものを保存するにはどうしたらよいですか?
ならば逆に質問。
Picture data[N] をファイルに保存/復元するにはどうしますか?
////・・・でたらめなのはごめんなさい
本をみながらサンプルプログラムをつぎはぎしながらやってるんで・・・orz
初心者なんで・・・ゆるしてください(T_T)
>ファイル名がLine.txtでありながらバイナリ・オープンで、しかもCStdioFile?
ってかんじからすると・・・
>Picture data[N] をファイルに保存/復元するにはどうしますか?
は Picure・オープンで開いてかきこみ・・・
正解?不正解?
えーと、もしかして基本的な言語知識もなしに
むやみやたらとプログラミングしようとしていませんか?
せめて、fin.Write(Ve_myPic,sizeof(Ve_myPic));が不味いと言うことがわかる程度の
知識はないと難しいと思いますけれど。
C++言語の知識がないのであれば、ちゃんと言語知識の勉強をしましょう。
あと、C++言語の知識がないのであれば、MFCを使うのはまだ早いです。
MFCを使わずにコンソールアプリで純粋にC++言語の勉強をする事を
お勧めします。
VC++の勉強をするのはその後で良いと思いますよ。
教科書はC++言語の教科書を使う事が大事です。
いきなりVC++の教科書を使っても多分理解できません。
あと、サンプルプログラムをつぎはぎしながら作るのは止めませんが、
使っているサンプルの中身を理解していないのであれば、
全く意味が無いので止めた方が良いです。
サンプルプログラムを参考にしてプログラムすると言うのは
内容を理解して自分のプリグラムに取り込むということであって
継ぎ接ぎで作ると言う事ではありません。
勉強にもならないし、へんな覚え方をすると逆に後々苦労します。
順を追って勉強する事をお勧めします。
がーっ、誤字。
誤)
> 内容を理解して自分のプリグラムに取り込むということであって
正)
内容を理解して自分のプログラムに取り込むということであって
>>Picture data[N] をファイルに保存/復元するにはどうしますか?
> は Picure・オープンで開いてかきこみ・・・
> 正解?不正解?
は? Pictureはアナタが定義した構造体ちゃうのん?
# それともどこぞの馬の骨が作ったもの?
少なくとも僕が作ったものじゃないから僕は読み書きできません。
Picutureをファイルに読み書きできなきゃPictureの集合体である
vector<Picture>を読み書きできるわけないやん。
なので、
「vector<Picture>を読み書きするため、Pictureの読み方/書き方を教えてくれ」
と訊いておるのですが。
すみません まったくそのとおりだとおもいますが・・・
今は時間がなく・・・課題はおわらせなければなりません
知識はC言語しかありません。
できれば やり方をおしえてください
////ごめんなさい・・・
え~と
typedef struct Picture{ //(保存する)
int lFigure; //線か図形を判断する 0:線 1~:図形
int nPoints; //各線の点の数
vector<POINT> ptLines; //
//線:各点の座標データ 図:配列番号[0]
int lKinds; //ペンの種類を保存する
int pTns; //ペンの太さを保存
COLORREF pColors; //ペンの色を保存
}Picture;
Picture のなかみはこんなかんじです。
vector にするまえは
struct Picture myPic[1000];
fin.Write(myPic,sizeof(myPic));
だったのでうまくいっていました。
> 今は時間がなく・・・課題はおわらせなければなりません
それはアナタの都合。知ったことか。
> 知識はC言語しかありません。
> できれば やり方をおしえてください
だからぁ、教えてやるから Picture をファイルに書く/読む コードを提示してください。 Cで
いいから。
それがあれば vector<Picture> を読み書きできるから。
学校の課題なら今の知識で無理やり課題を終わらせても無意味だと思うし、
何よりC言語の知識しかないのにC++言語でやろうというのが・・・。
会社の課題だったとしても理解しないで課題だけ出しても無意味ですしね。
と言うわけで私は降ります。(と言うほどアドバイスはしていませんけれど)
本来ならわからない事を先生とか課題を出している人に言って
ちゃんと勉強しなおすべきだと思いますよ。
今のままで突っ走っても良い事ありません。