|
皆様、回答ありがとうございます。
無事NULL埋めできました。
256バイトと20バイトの別々の実体があって、代入したせいで、参照先が異なっていたから。
ですね。
結局、グローバル変数として扱うクラス中のbyte配列をstringで保持して
(ファイルオープン時NULLがはいってしまうとエラーになるから)使いまわすようにしました。
実際のバイナリファイルライトは、byte配列でライトする、もさんに提供頂きました配列コピー
のやり方を採用させて頂くことで対応できました。ありがとうございました。
ファイル長オーバーの処理は入力終了時にメッセージ表示させて対応することにしました。
ありがとうございました。解決とさせて頂きます。
新たに「Cでいう構造体で一括でライトするには?(以下のように)」
という新たな疑問が沸いてきましたが、こちらはまた別途調べてみようと思います。
typedef struct DAT_TAG {
int a;
int b;
int c;
int d;
char szFile[256];
}DAT;
DAT stDat;
〜データセット省略〜
hFbin = CreateFile( szWriteFile, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL,NULL );
WriteFile( hFbin, &stDat, sizeof(DAT), &lWriteLen, NULL );
|