「Windows API/ファイル入出力」の版間の差分
削除された内容 追加された内容
{{Nav}},s/命令/関数/ |
syntaxhighlight |
||
12 行
<
// Windowsでfopenが使えない場合
#include "stdafx.h"
18 行
#pragma warning(disable:4996)
</syntaxhighlight>
のように。
32 行
さて、CreateFile関数を使う場合、たとえば、「test.txt」というファイルを作成したい場合なら、
<
// TODO: ここにコードを挿入してください。
</syntaxhighlight>
の下に、下記のように書き加える。
<
// TODO: ここにコードを挿入してください。
57 行
CloseHandle(hFile);
</syntaxhighlight>
ウィザードの自動作成したコードに上記コードを追加したコードを、コンパイルする。
111 行
設定情報を作成しただけでは、どのハンドルでファイルを扱うかは指定されてないので、なので
<
hFile = CreateFile(
TEXT("test.txt"), GENERIC_READ, 0, NULL,
CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL
);
</syntaxhighlight>
のように、ハンドル (上記の例では hFile )を指定する必要がある。
139 行
=== 関数の内容 ===
<
CreateFile(
TEXT("test.txt"), GENERIC_READ, 0, NULL,
CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL
);
</syntaxhighlight>
とあるが、いくつもある引数の意味は、それぞれ
<
CreateFile(
操作対象のファイル名, アクセスモード , 共有モード, セキュリティ記述子,
作成方法, ファイル属性, テンプレートファイルのハンドル
);
</syntaxhighlight>
を設定している。
254 行
いっぽう、Win32APIのプログラミングでは、まず、読み取った文字列を格納するための変数を、グローバル変数で、
<
wchar_t str1[100];
</syntaxhighlight>
のように wchar_t 型の文字配列を宣言する。
264 行
そして次に、プログラム中のファイル読み取りを実行したい箇所で、
<
// TODO: ここにコードを挿入してください。
280 行
if (p) *p = '\0'; // '\n' を除去
</syntaxhighlight>
297 行
あとは、例えば読み取った文字列を表示したいなら、単に WM_PAINT で
<
// TODO: HDC を使用する描画コードをここに追加してください...
TextOut(hdc, 30, 80, str1, lstrlen(str1));
</syntaxhighlight>
のように、すれば済む。
|