C++ CreateFileMappingA()名称参数

C++ CreateFileMappingA()名称参数,c++,winapi,C++,Winapi,我正在尝试制作一个程序,在其中输入一个包含单词和字母列表的文本文件,它会找到可以用这些字母生成的最长单词。我正在尽可能快地编写代码。我的方法是我所能想到的最优化的,但是使用getline()读取文件花费了我的程序数百毫秒。我四处搜索,发现我可以将文件中的数据映射到进程的虚拟内存中。这意味着我可以将数据转储到程序中,并从那里开始工作,这将使我的程序更快 我在windows上,所以我正在使用winbase.h和windows.h库。我成功地创建了CreateFileA()函数,以便它打开该文件,以便

我正在尝试制作一个程序,在其中输入一个包含单词和字母列表的文本文件,它会找到可以用这些字母生成的最长单词。我正在尽可能快地编写代码。我的方法是我所能想到的最优化的,但是使用getline()读取文件花费了我的程序数百毫秒。我四处搜索,发现我可以将文件中的数据映射到进程的虚拟内存中。这意味着我可以将数据转储到程序中,并从那里开始工作,这将使我的程序更快

我在windows上,所以我正在使用winbase.h和windows.h库。我成功地创建了CreateFileA()函数,以便它打开该文件,以便CreateFileMappingA()函数可以为MapViewOfFile()函数创建句柄

HANDLE mmh=CreateFileMappingA(“words.txt”,NULL,PAGE_READONLY,4866048,4863005,NULL)

最后一个paramater给了我一个问题,paramater这个名字。在MicrosoftDevCenter上,它表示变量类型为LPCSTR。它还提到,如果我输入NULL,它将没有名称。因为我把返回值放在一个变量中,所以我不需要名字。我尝试输入NULL,但遇到一个编译器错误,说明:

invalid conversion from 'HANDLE {aka void*}' to 'LPCSTR {aka const char*}' [-fpermissive]
invalid conversion from 'const void*' to 'HANDLE {aka void*}' [-fpermissive]
从'const void*'到'HANDLE{aka void*}'[-fppermissive]的转换无效。

我试着输入一个LPCSTR类型的变量,它产生了相同的错误。 我尝试输入一个句柄,但遇到一个编译器错误,说明:

invalid conversion from 'HANDLE {aka void*}' to 'LPCSTR {aka const char*}' [-fpermissive]
invalid conversion from 'const void*' to 'HANDLE {aka void*}' [-fpermissive]

我不确定该怎么办。

第一个参数是什么地方出了问题。它应该是从CreateFileA返回的文件句柄,而不是文件名。

第一个参数是文件句柄,而不是字符串或文件名。