“Not enough memory WinAPI” 可以翻译为 “WinAPI 内存不足”。

huangapple go评论53阅读模式
英文:

Not enough memory WinAPI

问题

I would like some help because i am lock on this problem during few days.

我想要一些帮助,因为我在这个问题上卡了几天。

I looking for on google and try to understand what is dwMaximumSizeHigh and dwMaximumSizeLow.

我在谷歌上搜索并尝试理解dwMaximumSizeHigh和dwMaximumSizeLow是什么。

I read some documentation about this parameters but i don't really understand what is it.

我阅读了一些关于这些参数的文档,但我并不真正理解它是什么。

I wrote a code

我写了一段代码

#include <windows.h>
#include <stdio.h>

void MappingOpen(PCWSTR lpFileName)
{
HANDLE hFile = CreateFileW(lpFileName, FILE_GENERIC_READ, FILE_SHARE_VALID_FLAGS, 0, OPEN_EXISTING, 0, 0);

if (hFile != INVALID_HANDLE_VALUE)
{
FILE_STANDARD_INFO fsi;
if (GetFileInformationByHandleEx(hFile, FileStandardInfo, &fsi, sizeof(fsi)))
{
HANDLE hSection = CreateFileMappingW(hFile, 0, PAGE_READONLY, 0, 1, 0);
if (hSection == NULL)
{
DWORD error_code = GetLastError();
printf("The error code is %lu",error_code);
}
else
{
printf("The create file mapping work ");
CloseHandle(hSection);
}
}
CloseHandle(hFile);
}else
{
printf("Cannot be open");
}
}

即使我将dwMaximumSizeHigh和dwMaximumSizeLow都添加为0,我仍然得到另一个错误(ERROR_FILE_INVALID)。

即使我将dwMaximumSizeHigh和dwMaximumSizeLow都添加为0,我仍然得到另一个错误(ERROR_FILE_INVALID)。

Thanks you very much

非常感谢您。

英文:

I would like some help because i am lock on this problem during few days.

I looking for on google and try to understand what is dwMaximumSizeHigh and dwMaximumSizeLow.

I read some documentation about this parameters but i don't really understand what is it.

I wrote a code

#include &lt;windows.h&gt;
#include &lt;stdio.h&gt;


void MappingOpen(PCWSTR lpFileName)
{
  HANDLE hFile = CreateFileW(lpFileName, FILE_GENERIC_READ, FILE_SHARE_VALID_FLAGS, 0, OPEN_EXISTING, 0, 0);

  if (hFile != INVALID_HANDLE_VALUE)
  {
    FILE_STANDARD_INFO fsi;
    if (GetFileInformationByHandleEx(hFile, FileStandardInfo, &amp;fsi, sizeof(fsi)))
    {
        HANDLE hSection = CreateFileMappingW(hFile, 0, PAGE_READONLY, 0, 1, 0);
        if (hSection == NULL)
        {
            DWORD error_code = GetLastError();
            printf(&quot;The error code is %lu&quot;,error_code);
        }
        else
        {
            printf(&quot;The create file mapping work &quot;);
            CloseHandle(hSection);
        }
    }
    CloseHandle(hFile);
}else
 {
    printf(&quot;Cannot be open&quot;);
 }
}

Even if i add 0 to dwMaximumSizeHigh and 0 dwMaximumSizeHigh i got another error (ERROR_FILE_INVALID).

Thanks you very much

答案1

得分: -1

dwMaximumSizeHigh 和 dwMaximumSizeLow 是相同值的一部分...

它是一个64位值,由32位部分组成... 高位和低位...

| 32位(高位) | 32位(低位) |

也许这有助于理解。

这里有解释:
https://learn.microsoft.com/en-gb/windows/win32/api/memoryapi/nf-memoryapi-createfilemappingw?redirectedfrom=MSDN(第4和第5个参数)

英文:

dwMaximumSizeHigh and dwMaxsimumSizeLow are parts of the same Value ...

its a 64-Bit value in 32-Bit parts.. the High and Low-parts..

| 32bit (high) | 32bit (low) |

Maybe that helps to understand.

it is explained here:
https://learn.microsoft.com/en-gb/windows/win32/api/memoryapi/nf-memoryapi-createfilemappingw?redirectedfrom=MSDN (4th and 5th Parameter)

huangapple
  • 本文由 发表于 2020年1月4日 00:02:03
  • 转载请务必保留本文链接:https://go.coder-hub.com/59581638.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定