「Windows API」の版間の差分

CreateFile 関数が作成しているものは、ファイル操作用ハンドルに必要な設定情報である。より正確に言うと、ハンドル(上記のコードでは hFile )がファイルを操作できるようにするために必要な諸設定を、 CreateFile 関数は作成している。
(CreateFileの機能は、その名とは違い、この機能はファイルを作成またはオープン(開く)する機能である。)
(CreateFile 関数が作成しているものは、ファイル操作用ハンドルに必要な設定情報である。より正確に言うと、ハンドル(上記のコードでは hFile )がファイルを操作できるようにするために必要な諸設定を、 CreateFile 関数は作成している。)
 
=== ファイルのオープンとクローズ ===
<code> CreateFile() </code> 関数の機能は、その名とは違い、この機能はファイルを作成または'''オープン'''(開く)する機能である。
 
やや不正確な説明をするが、わかりやすく言うと <code> CreateFile() </code> 関数が作成しているものは、ファイル操作用ハンドルに必要な設定情報である。より正確に言うと、ハンドル(上記のコードでは hFile )がファイルを操作できるようにするために必要な諸設定を、<code> CreateFile() </code> 関数は作成している。
 
設定情報を作成しただけでは、どのハンドルでファイルを扱うかは指定されてないので、なので
 
<source lang=c>
hFile = CreateFile(
TEXT("test.txt"), GENERIC_READ, 0, NULL,
CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL
);
</source>
 
のように、ハンドル (上記の例では hFile )を指定する必要がある。
 
C言語の入門書では、「変数は、入れ物(いれもの)である」と習ったのを思い出そう。ハンドル変数( hFile )に、ファイル操作用の設定情報( createFile で作成された設定情報)を入れる必要がある。
 
 
そして、このファイル操作用ハンドルの設定の作成をする際に、目的のファイルのオープンもされる仕様になっている。(CreateFileの第一引数で、"test.txt" のように、対象のファイルを指定しているので、どのファイルを開く必要があるかを、この関数を使う命令の実行時点でOSが既に知っている。)
 
 
すでに存在するファイルに読み書きをしたい場合にも、<code> CreateFile() </code> を使って対象のファイルをオープンする必要がある。
23,093

回編集