C语言怎么让找到一个进程在内存中的起始地址

C语言怎么让找到一个进程在内存中的起始地址,第1张

//获乱凳取模块基址可以使用windows api函数GetModuleHandle

#include "stdafx.h"

#include "windows.h"粗隐

#include "process.h"

int main(int argc, char* argv[])

{   //获取模块基址

    HMODULE hmou = ::GetModuleHandle(NULL)

    long int addr = (long int)hmou

    printf("进程基址:0X%0X\n", addr)

    system("pause")

    return 0

}

HMODULE GetModuleHandle (LPCTSTR  lpModuleName)

▲功能说明:获取一个应用程序或动态链接库的模块句柄

▲参数说明:lpModuleName 模块名称

▲返回值:如执行成功成功,则返回模块句柄。零表示失败。通过GetLastError获得错误信息

如:

GetModuleHandle(NULL)

这将返回自身应用程序句柄

▲注意:

前提是:只有欲获取的模块已映射到调用该函数的进程内,才会正确得到模块句柄岩陪厅。常用模块映射函数:LoadLibrary(..)。

main参数啊!

int

main(int

argc,char

*argv[])

{

printf(argv[0])

return

0

}

这样得到一个字符串蠢宽陵,从巧含中提取出路径不是难事带戚,如果不行Q960575562

一般默认的目录是和你所遍的程序在同一个目首州录里如果你想改,那么只要在使用fopen函数的时候输入或芹尺目录地址就可以了要注意的是一旦你这个程序生成了exe在脱离编译器衫高运行的时你所定的目录就不能改变了也就是说你自能在写程序时定义一次目标文件的路径


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12348834.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存