动态库调用主程序中函数的问题,高手请进啊 ( 积分: 100 )

  • 主题发起人 主题发起人 动力汽车
  • 开始时间 开始时间

动力汽车

Unregistered / Unconfirmed
GUEST, unregistred user!
有一.exe程序,还有一个可以被.exe程序调用的.dll动态库程序,现在我想在dll中调用.exe中的某个函数或者过程做一些事情,比如往.exe程序上某些控件中填写内容,这个事件要在.dll程序运行中触发的,请问我该怎么做?有什么方法吗?
 
用回调函数,还是用Hook?
 
简单啊系统消息啊
 
都是你写的就回调呗,exe是别人写的就只能HOOK
 
delphi世界qq群:23981160,喜欢delphi的都来
 
支持 lake_cx 兄。
可是 Hook 没写过。
 
lake_cx:
能不能给个回调函数完整的应用demo,网上的回调函数介绍我也看了一下,写的都很大概,最好有详细的应用代码参考一下,多谢
 
exe也可以导出函数的
 
function GetInt(i:Integer):Integer;
begin
Result:=i*1000;
end;

Exports
GetInt;
把以上两段语句加到某个exe的源代码中就可以导出GetInt函数,在调用端使用如下代码使用:
Type
TGetInt=function (i:Integer):Integer;
Var
GetInt:TGetInt;
Var
lib:THandle;
Initialization
Lib:=LoadLibrary('Project2.exe');
GetInt:=GetProcAddress(Lib,'GetInt');
Finalization
FreeLibrary(Lib);
调用GetInt函数就可。
 
楼上已经很清楚了~~~~
 
不过exe的函数建议使用静态引用,不要LoadLibrary和FreeLibrary,我不懂把exe去FreeLibrary会怎么样,你有兴趣可以试试
 
exe中也可以有
exports
的,和dll一样
我的程序就是exe调dll的函数
dll也调exe的函数
 
多人接受答案了。
 
后退
顶部