C++ の CreateFile 関数の使用方法
C++でCreateFile関数を使ってファイルの作成またはオープンを行う場合、次の手順に従います。
- ヘッダーファイルを含める:
#include <Windows.h>
- ファイルハンドルの変数を定義する
HANDLE hFile;
- CreateFile関数を呼び出す:
hFile = CreateFile(
LPCTSTR lpFileName, // 文件名
DWORD dwDesiredAccess, // 访问模式
DWORD dwShareMode, // 共享模式
LPSECURITY_ATTRIBUTES lpSecurityAttributes, // 安全属性
DWORD dwCreationDisposition, // 如何创建文件
DWORD dwFlagsAndAttributes, // 文件属性
HANDLE hTemplateFile // 模板文件句柄
);
パラメータの説明:
- lpFileName:絶対パスまたは相対パスの、作成またはオープンするファイル名。
- dwDesiredAccess:アクセスモード(定数GENERIC_READ が読み取り、GENERIC_WRITE が書き込みを表し、その他定数を組み合わせることも可能)。
- dwShareMode:共有モード、読み取り可能を示す定数FILE_SHARE_READ、書き込み可能を示す定数FILE_SHARE_WRITEを使用、または他の定数の組み合わせを使用可能
- lpSecurityAttributes: セキュリティ属性。通常、NULL に設定します。
- dwCreationDisposition:ファイルを作成する方法。CREATE_ALWAYS 定数は常に新しいファイルを作成し、OPEN_ALWAYS 定数はファイルが存在しない場合は新しいファイルを作成し、ファイルが存在する場合はそれを開きます。
- dwFlagsAndAttributes: ファイル属性、通常のファイルを表すには定数FILE_ATTRIBUTE_NORMALを使用するか、他の定数を組み合わせて使用します。
- hTemplateFile:テンプレートファイルのハンドル。通常は NULL に設定されます。
- ファイルハンドルが有効かどうか確認する:
if (hFile == INVALID_HANDLE_VALUE) {
// 文件句柄无效,创建或打开文件失败
DWORD dwError = GetLastError();
// 处理错误
} else {
// 文件句柄有效,创建或打开文件成功
// 在这里可以继续对文件进行读写操作
}
注意点:
- ファイルを操作し終えたら、CloseHandle関数を用いてファイルハンドルを閉じ、システムリソースを解放する必要があります。
- ファイルへのデータ書き込みにはWriteFile関数、ファイルからのデータ読み込みにはReadFile関数を使用します。