如题
好比刷新,只是刷新操作时对于显示
而我需要的是刷新时的对象是内存
也就是说重新读取一个文件的的到内存中去
需要这个函数,感谢
我觉得够清楚了,那我再说一次吧
就是一个程序本来就已经把一个文件的内容读到了内存中,别人需要查询文件的内容是,只需要程序读取内存中的数据。但是经常需要修给文件里面的数据,修改完了保存。但是这样并没有更新内存中的数据,也就是说内存中的数据还是老的,与最后修改后的数据不一样的。现在需要在程序添加一个函数,用来重新加载文件,也就是说重新读取文件,使得内存中的数据及时更新,换句话说就是及时同步内存与文件的数据
-------------------------------
三楼没有理解我要说的意思,如果那个读取数据的程序另外一个,与我要写的不是同一个程序。
所以我这个程序重新读取,但是对另外一个没有影响
-------------------------------
回三楼,是的,(设其他程序为A程序)我没有A程序的源码,它是随机启动的。
我现在写的程序是程序B
windows 中 重新加载 一个文件的API函数 C语言
答案:3 悬赏:60 手机版
解决时间 2021-04-12 05:08
- 提问者网友:杀手的诗
- 2021-04-11 12:16
最佳答案
- 五星知识达人网友:人间朝暮
- 2021-04-11 13:38
看明白了,就是要读取、修改其它进程的内存空间的意思呗
方法:
1.获得其他进程ID,可手动输入或者通过FindWindow及GetWindowThreadProcessId的组合来获取
2.OpenProcess打开进程,以读写方式PROCESS_VM_WRITE | PROCESS_VM_READ
3.通过ReadProcessMemory和WriteProcessMemory进行内存读写
按照这方法读写挺容易的,最好你的程序有SeDebugPrivilege权限,至于文件在内存中的位置就要靠你自己查了,方法就是在文件的起始位置设置特殊变量,第一次做的时候可以将内存中的所有数据全部取出来,然后找出这个特殊位,计算其距离基地址的偏移量,下次再想修改文件的时候直接就用基地址加上偏移量就可以了。
函数的具体使用方法你查下msdn
方法:
1.获得其他进程ID,可手动输入或者通过FindWindow及GetWindowThreadProcessId的组合来获取
2.OpenProcess打开进程,以读写方式PROCESS_VM_WRITE | PROCESS_VM_READ
3.通过ReadProcessMemory和WriteProcessMemory进行内存读写
按照这方法读写挺容易的,最好你的程序有SeDebugPrivilege权限,至于文件在内存中的位置就要靠你自己查了,方法就是在文件的起始位置设置特殊变量,第一次做的时候可以将内存中的所有数据全部取出来,然后找出这个特殊位,计算其距离基地址的偏移量,下次再想修改文件的时候直接就用基地址加上偏移量就可以了。
函数的具体使用方法你查下msdn
全部回答
- 1楼网友:冷風如刀
- 2021-04-11 15:23
ReadDirectoryChanges
没有这样的cache
监视到以后重新建立文件映射吧
=======================================
难道你的意思是
A程序打开了文件 (A程序你没有源码)
B程序修改了文件
刷新A程序的内存?
- 2楼网友:旧脸谱
- 2021-04-11 13:56
比如messagebox()这个api函数在windows.h文件中
strlen在stdio.h文件中
简单的写一个api
#include "windows.h"
#include "windowsx.h"
winmain(这里有六个数)
{
messagebox(null,"你好","编程世界",mb_yesno);
}
windows 这个多作业系统除了协调应用程序的执行、分配内存、管理资源…之外, 它同时也是一个很大的服务中心,调用这个服务中心的各种服务(每一种服务就是一个函数),可以帮应用程式达到开启视窗、描绘图形、使用周边设备等目的,由于这些函数服务的对象是应用程序(application), 所以便称之为 application programming interface,简称 api 函数。win32 api也就是microsoft windows 32位平台的应用程序编程接口。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯