0

我正在尝试该CreateFileMapping()功能(在Windows上)。

现在,在这段代码中:

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);

文件创建好了,但hFileMapping值为NULL! 这很奇怪,因为我正在使用hFile(这是一个有效的句柄!)当我GetLastError()在调用CreateFileMApping()I'm getting后检查状态时ERROR_PATH_NOT_FOUND,这很奇怪,因为另一个函数只是使用它来创建文件。

有任何想法吗?

4

1 回答 1

1

好的,一直在进行一些挖掘(我知道应该事先进行)。的最后一个参数CreateFileMapping()应该是一个不包含反斜杠的字符串。我已经使用我创建的文件路径作为该参数(使其成为唯一名称)。因此,返回的错误实际上是应用于该参数,而不是应用于作为第一个参数传递的文件句柄。

于 2012-02-02T07:30:11.110 回答