2011-01-09 22 views
2

Windows APIを使用してテキストファイルを作成します。私は学んだWindows APIを使用してファイルを作成する方法は?

私はファイルを作成するための最初のパラメータを渡す方法を理解できません。私は、データ型FILEを使用してポインタを最初のパラメータとして渡そうとしましたが、LPCTSTRと互換性がないことを示しています。誰も私にそれをする方法を教えてもらえますか?私はWindows APIを使用して新しいです。前もって感謝します。

答えて

9

LPCTSTRは、文字セットに応じconst wchar_t*又はconst char*のいずれかである、const TCHAR*(「コンスタントTCHAR -stringに長いポインタ」)と同じです。だから、同じように、_T()に囲まれた文字列を渡す:

CreateFile(_T("C:\\File.txt"), FILE_READ_DATA, FILE_SHARE_READ, 
    NULL, OPEN_ALWAYS, 0, NULL); 

(ちなみに、FILEは、Windows SDKの一部ではありません。それは、標準のCランタイムライブラリの一部だし、それは内部CreateFileにをベースですこれは、その名前に基づいてファイルを作成します)。

+0

_Tのヘッダファイルに名前を付けてください。私はを含んでいます。 _Tは未定義です。 – narayanpatra

+0

ありがとうございました。私は怠け者だった。ご協力いただきありがとうございます。 – narayanpatra

+0

もちろん、問題ありません。楽しい事実: 'TEXT()'マクロは同じことをしますが、別のヘッダファイルで定義されているだけです。 :) – Mehrdad

4

ファイルの名前を渡します。文字列。 SDK example codeを使用してください。

+0

この例では、ファイル名はコマンドラインで渡されます。私は自分のコードでハードコードしたいです。 – narayanpatra

+1

はい、編集できます。 –

1

CreateFile( "OUTPUT_FILE"、GENERIC_WRITE、0、NULL、 CREATE_ALWAYS、FILE_ATTRIBUTE_NORMAL、NULL);

最初のパラメータは、任意の文字列変数から渡すことができるファイルの名前です。例えば、ファイル名がCString変数にある場合、LPCTSTRに変換するためにvariblenameを渡すことができます。他のすべてのパラメータは、ファイルを常に作成するか、既存のファイルに追加するかなど、実装によって異なります。

+1

'_T()'(または 'TEXT()')マクロを忘れました... – Mehrdad

関連する問題