2016-10-28 20 views
-4

Windows APIを使用してファイルを作成しようとしていますが、ファイル名の形式が問題です。 どうすれば対応できますか?WINAPIを使用してファイルを作成する方法

using namespace std; 

int main(){ 
    HANDLE WINAPI CreateFile("c:\nader", GENERIC_READ, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); 
    return 0; 
} 
+2

正しいエスケープを使用してください: '' c:\\ nader "' –

+0

戻り値とエラーコードを検査することは、常に良い考えです。 –

+0

'#include 'と '... var = ...'の前に 'CreateFile'があります。 – i486

答えて

0

コンパイルされない無効なコードを使用しています。文字列リテラルに間違った形式を使用しています。代わりにこれを試してください:あなたの唯一の仕事はそれを任意のI/Oを行うファイルを作成しなくすることである場合を除き、一緒

#include <windows.h> 

int main() { 
    HANDLE hFile = CreateFile("c:\\nader", GENERIC_READ, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); 
    if (hFile != INVALID_HANDLE_VALUE) { 
     CloseHandle(hFile); 
    } 
    return 0; 
} 
GENERIC_READを使用して、言われていること

FILE_SHARED_READ、およびCREATE_ALWAYSは意味がありません。 GENERIC_READhFileを読み取り専用にします。FILE_SHARE_READは、開かれている間に他の人が同じファイルに書き込むことができないようにします。CREATE_ALWAYSは、ファイルが開かれても常に空であることを保証します。 hFileから読む。ファイルからデータを読み取る場合は、少なくともCREATE_ALWAYSOPEN_EXISTINGまたはOPEN_ALWAYSのいずれかに変更してください。これにより、既存のファイルデータが読み取り用に保持されます。

関連する問題