0

私はCreateFileMapping()(ウィンドウズで)機能しようとしています。

さて、このコードでは:

hFile = CreateFile(filename, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_DELETE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); 
hFileMapping = CreateFileMapping(hFile, NULL, PAGE_READWRITE, 0, sizeInBlocks*SO_BLOCK_SIZE, filename);

ファイルは正常に作成されますが、の値hFileMappingNULL!です。これは私が使用しているため(hFileこれは有効なハンドルです!)GetLastError()、呼び出し後にステータスを確認すると、別の関数がファイルを作成するために使用したため、これは奇妙です。CreateFileMApping()ERROR_PATH_NOT_FOUND

何か案は?

4

1 に答える 1

1

さて、掘り進んでいます(事前に行っておくべきだったと思います)。の最後のパラメータは、CreateFileMapping()円記号を含まない文字列である必要があります。そして、作成したファイルパスをそのパラメーターとして使用しました(一意の名前にするため)。したがって、返されるエラーは実際にはそのパラメーターに適用され、最初のパラメーターとして渡されたファイルハンドルには適用されませんでした。

于 2012-02-02T07:30:11.110 に答える