dポイントプレゼントキャンペーン実施中!

現在、VC++6onwin2K,win32SDKを用いて、アプリケーションを作っています。
ターゲットはWIN_CE2.0です。

アプリケーションの初期値を保存するために、
構造体の内容をファイルに書き込み、
読み出したいのですが、やり方が分かりません。

ターゲットがWIN_CE2.0だからだと思うのですが、
<iostream.h>,<fstream.h>はインクルードできません。

現在は構造体の内容をcharまたはWCHARに変換して
CreateFile関数でファイル書き込みしているのですが、
無駄なことをしている気がします。

なにか良い方法はありませんか?
よろしくお願いします。

A 回答 (2件)

 CreateFile でオープンしたファイルに対して、



 WriteFile( hFile, (LPCVOID)構造体名, sizeof(構造体名), &dword, NULL );

 という方法で書き込むのはどうでしょう?
 読み込みのときは逆のことを ReadFile でやるわけですが。
    • good
    • 0
この回答へのお礼

下記のようにすると上手くいきました。

struct SCREEN{
TCHAR Id1[24];
TCHAR Option1[12];
};
struct SCREEN ScreenIni;
SCREEN *p_Screen = &ScreenIni;

WriteFile( hFile, (LPCVOID)p_Screen, sizeof(SCREEN), &dwWritten,NULL);

因みにLPCVOIDははじめて聞きました。

ありがとうございました。

お礼日時:2003/01/27 20:07

こんにちわ。



> 現在は構造体の内容をcharまたはWCHARに変換して
> CreateFile関数でファイル書き込みしているのですが、
> 無駄なことをしている気がします。
> なにか良い方法はありませんか?
stdio.h をinclude して、fwrite() で (バイナリ形式で) 書き込んじゃう
と言うのはどうでしょう?
エディタで見ても意味がわからなくなりますが、fread/fwrite で構造体
の内容をそのまま読み書きできますので、お手軽かと。
    • good
    • 0
この回答へのお礼

>stdio.h をinclude して、
MFCを使用しないで、APIのみで開発を行っているせいか、
ターゲットがWIN_CE2.0のためか良く分かっていないのですが、
(多分どちらかに原因があると考えています。)
stdio.h がinclude 出来ません。(;_;)
ビルド時に下記エラーが発生します。
C1083: インクルード ファイルがオープンできません。

多分CreateFile関数の体系を使わないとダメなのでは
ないでしょうか?

お礼日時:2003/01/27 18:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!