小弟最近在网上看到一个贴帖子是关于API函数 _ReturnAddress()的,不过是C++的,
链接:http://blog.csdn.net/wwwdotfa/article/details/7564113我找了好长时间,在Delphi中也没找到相似的函数,#include "stdafx.h"
#include "intrin.h"#pragma intrinsic(_ReturnAddress)HMODULE APIENTRY GetRAMH()
{
HMODULE hm = NULL;
void *callerAddress = _ReturnAddress();
::GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS, (LPCWSTR)callerAddress, &hm);
return hm;
}希望哪位大侠能找到这个_ReturnAddress() API函数
链接:http://blog.csdn.net/wwwdotfa/article/details/7564113我找了好长时间,在Delphi中也没找到相似的函数,#include "stdafx.h"
#include "intrin.h"#pragma intrinsic(_ReturnAddress)HMODULE APIENTRY GetRAMH()
{
HMODULE hm = NULL;
void *callerAddress = _ReturnAddress();
::GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS, (LPCWSTR)callerAddress, &hm);
return hm;
}希望哪位大侠能找到这个_ReturnAddress() API函数
解决方案 »
- 求算法
- 一个很奇怪的DELPHI数据显示问题,急急急,在线等。
- 如何区分操作系统是XP还是2K
- 有没有替代delphi自带的TrackBar控件吗
- 请问哪有不会过期的Formular one 6.1正式版下载啊
- 怎么实现局域网内类似于qq的聊天工具
- 请各位老大看看一个delphi数据库连接问题
- 一个算法的问题?
- delphi用BDE控件的SQL语句建立的dbf表,或者batchmove产生的dbf表,无法被其他软件识别,比如foxpro,excel.请问如何解决该问题,在线等待
- 计算价钱?
- 远程连不上服务器,用的是稻草人解析域名
- DELPHI 7下IDFTP编的FTP程序,在WIN7下用不了,如何解决?
http://www.cnblogs.com/JefferyZhou/archive/2012/09/24/2700303.html看看哪位高人能用Delphi 写一个,
试试下面的代码
var
callerAddress : Pointer ;
...
asm
mov EAX,EBP
mov &callerAddress,EAX
end ;
——每次以__function__这个宏作为它的实参(有些c的编译器有这个宏,delphi就不知道了)
补充说明一下,高级语言调用函数时,一般会先将返回地址入栈,然后是参数入栈。
只需在栈中找到返回地址就可以了。如果不是EBP,就是别的寄存器。去查查资料。
GetModuleHandleEx貌似只有特定版本windows才支持吧.
#include "intrin.h"#pragma intrinsic(_ReturnAddress)HMODULE APIENTRY GetRAMH()
{
HMODULE hm = NULL;
void *callerAddress = _ReturnAddress();
::GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS, (LPCWSTR)callerAddress, &hm);
return hm;
}
不要拘泥于_ReturnAddress();在D中怎么用,知道在C中怎么用做出DLL来再在D中用吧。
我也想写一个C++的dll,然后用delphi调用,貌似intrin.h 在VC++6.0里面没有,找了半天也没找到
我是想把这个技术用在HOOKAPI技术上,我要监视一个软件各个模块的API调用情况,所以自己没法改变参数
VC6下面确定是没有,我用的VC2008下面是有的,如果有条件可以装个VS2008