int __stdcall CallTax(char *src, int a2)
{
int result; // eax@2
if ( handle )
result = sub_404194(handle, src, a2);
else
result = 900;
return result;
}
//函数类型定义
type
CallTax = function(src: PChar; hwnd: Integer):Integer;stdcall;
src := PChar('20');
try
Tp:=GetProcAddress(Th,PChar('CallTax')); //这个地方拿到的地址是2ED3DAC,但是在exeScope里查看的地址不是这个,这个两个地址应该是一致的吗?还是dll被load以后,对应的地址也是变化的?如何去确认地址是否正确呢?
if Tp<>nil then begin
Tf:=CallTax(Tp);
rtn := Tf(src, 0);
if rtn = 0 then
ShowMessage('Call ok')
else
ShowMessage('Call failed');
end
else
ShowMessage('CallTax函数没有找到');
finally
//FreeLibrary(Th); {释放DLL}
end