DELPHI 替换API问题. DELPHI 可以像C++一样.在程序里直接替换 API吗?如果不用 API HOOK 还有什么方法直接替换API的地址. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 除了.HOOK 就没了么?C++的建同名会自动替换的啊.DELPHI 的为什么就不能啊.. 编译器会自动识别了,和你替换不替换没有什么关系,事实上如果是完全的API替换,必须用自己重写实现API功能 function CreateWindowExA(dwExStyle: DWORD; lpClassName: PAnsiChar; lpWindowName: PAnsiChar; dwStyle: DWORD; X, Y, nWidth, nHeight: Integer; hWndParent: HWND; hMenu: HMENU; hInstance: HINST; lpParam: Pointer): HWND; stdcall;type_CreateWindowExA = function (dwExStyle: DWORD; lpClassName: PAnsiChar; lpWindowName: PAnsiChar; dwStyle: DWORD; X, Y, nWidth, nHeight: Integer; hWndParent: HWND; hMenu: HMENU; hInstance: HINST; lpParam: Pointer): HWND;var FPUCW: Word; ahwnd : Cardinal ; apointtt : Pointer;begin apointtt :=GetProcAddress(LoadLibrary('USER32.dll'),'CreateWindowExA'); Result := _CreateWindowExA(HOOKlei[0].BaseAddr)(dwExStyle, lpClassName, lpWindowName, dwStyle, X, Y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);end;这样也不行哇 你还不如直接复制自带PAS单元里的声明,改个名字就行了 不自动替换.我是想在程序自动创建窗口的时候..调用我的自定义,替换了.原来的API.CreateWindowExA修改里面的参数.再返回. 如果用 API HOOK...是会先加载 DLL我就是想在不加载 'USER32.dll' 的情况下 调用. .CreateWindowExA 功能 在C++ 里面.因为作用域的关系..如果有同名 API 函数,编译器会自动先用.自己定义的函数.那 DELPHI 有没这方面的办法的? 你自己写个同名函数,前边带单元名不就可以了 ****.CreateFile 关于两个程序中发送消息的问题 马上结~~~ 关于下面这篇文章里的疑问(关于OFFICE COM ADDIN) DELPHI中build和compile有什么区别? 如何用循环语句把ADOQUERY查询到的某列数据一条一条赋值给LIST。 请问这句代码应该加到哪里? 请问这样的sql语句怎么写呢?? 关于注册表编程的一点经验 关于数据库表维护问题(添加,删除,修改,插入) 咦????Delphi下如何更改系统日期??? FileSetAttr去掉文件隐藏属性后,隐藏属性复选框变成灰色了...... 怎么在一个窗体上显示多个不同的DBGRID
DELPHI 的为什么就不能啊..
lpWindowName: PAnsiChar; dwStyle: DWORD; X, Y, nWidth, nHeight: Integer;
hWndParent: HWND; hMenu: HMENU; hInstance: HINST; lpParam: Pointer): HWND; stdcall;
type
_CreateWindowExA = function (dwExStyle: DWORD; lpClassName: PAnsiChar;
lpWindowName: PAnsiChar; dwStyle: DWORD; X, Y, nWidth, nHeight: Integer;
hWndParent: HWND; hMenu: HMENU; hInstance: HINST; lpParam: Pointer): HWND;
var
FPUCW: Word;
ahwnd : Cardinal ;
apointtt : Pointer;
begin
apointtt :=GetProcAddress(LoadLibrary('USER32.dll'),'CreateWindowExA'); Result := _CreateWindowExA(HOOKlei[0].BaseAddr)(dwExStyle, lpClassName, lpWindowName, dwStyle,
X, Y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
end;这样也不行哇
我是想在程序自动创建窗口的时候..调用我的自定义,替换了.原来的API.CreateWindowExA修改里面的参数.再返回.
我就是想在不加载 'USER32.dll' 的情况下 调用. .CreateWindowExA 功能
那 DELPHI 有没这方面的办法的?