将记事本的exe文件读取到内存,并返回读取后在内存中的地址
#include "stdafx.h" #include <malloc.h> int file_length(FILE *fp); void fun_02() { FILE *fp1 = NULL; //定义一个文件指针 int FpSize = 0; //初始化exe文件长度 fp1 = fopen("C:\\Windows\\System32\\notepad.exe","rb");//打开文件(读和写) FpSize = file_length(fp1);//获取exe大小 char* FileBuffer = (char *)malloc(FpSize);//开辟一段动态内存,用FileBuffer指向 if(FileBuffer != NUll) { fread(FileBuffer,FpSzie,1,fp1); }//将.exe写入内存中 int addr = (int)FileBuffer; printf("%x",FileBuffer);//返回内存编号 free(FileBuffer); fclose(fp1);//释放关闭 } int file_length(FILE *fp) { int num;//初始化一个计算器 fseek(fp,0,SEEK_END); num = ftell(fp); fseek(fp,0,SEEK_SET);//使用完毕后,要将文件指针指向文件开始 return num; } int main(int argc,char* argv[]) { fun_02(); getchar(); return 0; }