MapViewOfFile 返回什么? [复制]

2024-02-05

可能的重复:
为什么加载程序无法加载到所需位置 https://stackoverflow.com/questions/9698496/why-wont-the-loader-load-at-the-desired-location

“MapViewOfFile”,这个函数是否将文件映射到虚拟内存中并返回映射内存的基地址?如果是,那么下面的代码应该输出0X400000,因为默认情况下,exe是在这个位置加载的,但输出是0X360000。为什么??

#include<iostream>
#include<Windows.h>
#include<stdio.h>
#include<WinNT.h>


int main()
{


HANDLE  hFile,hFileMapping;
LPVOID lpFileBase;


if((hFile = CreateFile(TEXT("c:\\linked list.exe"),GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0)) == INVALID_HANDLE_VALUE)
    std::cout<<"unable to open";

if((hFileMapping = CreateFileMapping(hFile,NULL,PAGE_READONLY,0,0,NULL)) == 0)
{
    CloseHandle(hFile);
    std::cout<<"unable to open for mapping";
}

if((lpFileBase = MapViewOfFile(hFileMapping,FILE_MAP_READ,0,0,0))== 0)
{
    CloseHandle(hFile);
    CloseHandle(hFileMapping);
    std::cout<<"couldn't map view of file";
}

printf("%x\n",lpFileBase);

}

您研究的0X400000与普通文件映射无关。

You can imagineMapViewOfFile 作为您要打开的文件的 malloc+memcpy,仅此而已(在幕后情况恰恰相反:malloc 可以使用平板内存映射)。因此,MapViewOfFile 通常只选择一个可以在内存中连续容纳文件视图字节的地址。

您可能想要的(因为您正在尝试映射 .exe)是用它创建一个新进程创建进程 http://msdn.microsoft.com/en-us/library/windows/desktop/ms682425%28v=vs.85%29.aspx.

如果您确实需要将文件映射到特定地址,您可以使用文件扩展视图 http://msdn.microsoft.com/en-us/library/windows/desktop/aa366763%28v=vs.85%29.aspx,但没有任何保证。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MapViewOfFile 返回什么? [复制] 的相关文章

随机推荐

  • 如何对消费者组内的 Kafka 消费者进行负载均衡

    Scenario 同一消费者组内有 10 个 kafka 消费者 Kafka 有 10 个分区 gt 这意味着每个分区都会自动分配给组内的单个消费者 消息以循环方式发送到分区 有时 一条消息的处理时间会比其他消息长得多 在这种情况下 下一条
  • 在实际的 CPU 上,未初始化变量的值从何而来?

    我想知道变量的初始化方式 include
  • 获取表中元素的 offsetTop

    我似乎无法弄清楚如何获取表中元素的 offsetTop 它适用于表格外部的元素 但表格内的所有元素都返回相同的结果 并且通常位于页面顶部 我在 Firefox 和 Chrome 中尝试过这个 如何获取表中元素的 offsetTop offs
  • 哪些开源许可证与 Apple 的 iPhone 及其官方 App Store 兼容? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在编写一个 iPhone 应用程序 我想使用第 3 方库来实现其部分功能 我打算通过 App Store 出售它 并且我的代码不会开源 哪些开源许
  • 用 Delphi 区分缓冲区

    我定期接收数据缓冲区 其中包含许多时间间隔固定的值 我需要区分它们 我已经很久没有在学校学过微积分了 我想出的是这样的 function DifferentiateBuffer ABuffer TDoubleDynArray AVPS in
  • MagicSuggest - 设置带有预选项目的魔术建议列表

    我在用魔法建议 http nicolasbize github io magicsuggest 从以下 JSON 数据填充标签列表 Id money name money Id education name education 当我要编辑页
  • Visual Studio Code 自动完成同一文件中的单词

    注 我已经尝试过javascript suggest alwaysAllWords按照提议here https stackoverflow com questions 30793337 vscode intellisense autocom
  • 如何从“Promise”对象获取值

    我开始学习以太坊和 web3js 并注意到 Web3js 上的一些功能是异步的 我想要实现的是获取钱包的帐户余额并将数据用于其他用途 我的代码如下 function getAccountBalance2 address var wei ba
  • 跨嵌套列表 rbind 数据帧

    我查看了各种绑定列表问题 例如this https stackoverflow com questions 1652522 rbind dataframes in a list of lists但我真的找不到更有效的方法来做到这一点 我有一
  • Kotlin:无法调用表达式,因为找不到函数 invoke()

    我正在尝试构建一个应用程序来实现谷歌地图 由于某种原因 我收到由于找不到函数 invoke 而无法调用表达式的错误 我不知道如何解决这个问题 也许你们中的一个人可以帮忙 package com example maxs kotlinnear
  • 如何让 Google Now 在 Android 后台持续运行

    我心里有一个应用程序的想法 但我还没有弄清楚其中的一部分 在 Android 版 Google Now 中 它为您提供以下搜索选项 输入搜索 点击麦克风说出您的搜索 或者只需说 Google 即可开始语音搜索 我想知道他们是如何让 3 发挥
  • 获取 Yii 中最后插入的值

    我已经制作了一个表单模型 其中的字段就像 id firstname lastname description created at updated at created by updated by 我已经为表单做了必要的 CRUD 现在我想
  • JMeter 基本身份验证

    我试图暗示使用 JMeter 的 Web 服务的基本身份验证过程 但每次它都会抛出错误 401 Unauthorized 我尝试使用 HTTP 标头管理器向其添加标头授权和值 但它仍然不起作用 我还尝试过使用 HTTP 授权管理器 还是没有
  • 将组合框值传递到 MS Access 中的 SQL 查询

    我的表单中有一个组合框 我希望将组合框的文本传递到查询中 我的查询是 select from where something Forms Enter Data comboCup 表格的名称是Enter Data组合框的名称是comboCup
  • python中[None]和[]有什么区别? [复制]

    这个问题在这里已经有答案了 我认为 None 与 相同 但在我的测试中 也许有一些东西 gt gt gt print len 0 gt gt gt print len None 1 我什么时候应该使用 None 和 另一个有趣的问题 gt
  • Visual Studio 2013.3 中新的 MVC5 项目出现错误

    想知道其他人是否经历过这种情况以及他们的解决方案是什么 在 Visual Studio 2013 中 我创建一个新的 ASP NET Web 应用程序 保留所有默认值 在下一个屏幕中 我选择 MVC 添加 MVC 的文件夹和核心引用 但不添
  • Scrum - 您何时估计产品待办事项的工作量? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 您的团队在 Scrum 流程的哪一部分对完成给定产品积压项目所需的工作量进行了有根据的估计 例如 假设您有一个产品待办事项列表项 内容为 Sprint
  • xCode 中存在重复符号,但不存在重复符号

    问题Xcode 版本 4 6 1 4H512 抱怨重复符号问题 重复符号 OBJC METACLASS PacksStoreHelper 位于 Users shannoga Library Developer Xcode DerivedDa
  • 如何在 flutter 中使用展示案例视图?

    I use 展示案例查看 https github com simformsolutions flutter showcaseview打包在我的应用程序中 并想展示一次 就在第一次启动之后 我怎样才能只执行一次而不在下次启动时显示它 ove
  • MapViewOfFile 返回什么? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么加载程序无法加载到所需位置 https stackoverflow com questions 9698496 why wont the loader load at the desired l