Delphi中动态调用DLL的方法
来源:互联网 发布:html在线问卷答题源码 编辑:程序博客网 时间:2024/04/29 23:06
Delphi中动态调用dll的方法如下:
function CallFunc(dllname, funcname: string; const param: array of const): DWORD;var hLib: THandle; pFunc: Pointer; intSize: Integer;begin Result := 0; hLib := LoadLibrary(PChar(dllname)); if hLib <> 0 then begin pFunc := GetProcAddress(hLib, PChar(funcname)); if pFunc <> nil then begin // 获取参数大小 intSize := Length(param); // 以下汇编码将自动完成函数调用 asm push ecx push esi mov ecx, intSize; // 参数的个数 mov esi, param test ecx, ecx // 判断是否有参数 je @call // 如果没有参数则跳转到函数调用处 @again: dec ecx push dword ptr [esi + ecx * 8] // 循环把参数压入堆栈 cmp ecx, 0 jnz @again // 一直循环到 ecx 为0 @call: call pFunc // 调用函数 mov @Result, eax // 返回值 pop esi pop ecx end; end; FreeLibrary(hLib); end;end;
然后调用的时候如下:
CallFunc('user32.dll', 'MessageBoxA', [0, 'hello world', 'title', MB_OK]);CallFunc('user32.dll', 'MessageBeep', []);CallFunc('kernel32.dll', 'Sleep', [1000]);
0 0
- Delphi中动态调用DLL的方法
- Delphi中动态调用DLL的方法
- DELPHI中动态调用dll
- delphi动态调用DLL的方法与技巧
- DELPHI中动态调用DLL的载入片断代码
- 在Delphi中动态调用C++的DLL
- delphi 动态调用DLL
- Delphi环境中编写调用DLL的方法和技巧
- Delphi动态调用C++写的DLL
- delphi dll 静态调用和动态调用方法总结
- Delphi中C++的DLL的调用
- 如何动态调用DLL中类的方法以及属性
- 如何动态调用DLL中类的方法以及属性
- 如何动态调用DLL中类的方法以及属性
- 如何动态调用DLL中类的方法以及属性
- java中调用 dll 动态库的简洁方法 JNative
- Java中调用dll动态库的简洁方法
- Java中调用动态库dll的方法
- java编程中'为了性能'一些尽量做到的地方
- 笔记-多线程
- I2C总线协议
- HTML5 工具
- C++第四次作业
- Delphi中动态调用DLL的方法
- 【GDOI2016模拟4.23】飞机调度
- Oracle的数据类型float(b)
- 15个学习习惯,收益一生(蓝心网)
- Android Service生命周期 Service里面的onStartCommand()方法详解
- C#界面设计之利用TreeView来制作新闻列表
- 和尚挑水问题
- 红外协议之NEC协议
- 朴素贝叶斯(Native Bayes)法简述