「Windows API/ファイル入出力」の版間の差分

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