CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  Windows SDK/API

各位仁兄请帮助我一下!!

楼主zgc7622(张远_7622)2006-02-18 09:50:55 在 Delphi / Windows SDK/API 提问

我想得到我的应用程序中的函数A的函数指针。如何得到呢?  
  我的目的是将这个指针传递给一个DLL让这个DLL可以调用这个函数A。  
  请高手帮助呀!! 问题点数:100、回复次数:5Top

1 楼cuteant(我这张旧床票还能否登上你的破床|涛声是否依旧)回复于 2006-02-18 09:59:06 得分 100

var  
    vTestEvent:   TNotifyEvent;  
  begin  
    Pointer((@@vTestEvent)^)   :=   @TForm1.MyClick;   //或者通过:TForm1.MethodAddress('MyClick')   方式取函数地址  
    Pointer(Pointer(Integer(@@vTestEvent)   +   4)^)   :=   Pointer(Self);  
    vTestEvent(nil);   //效果和执行   Self.MyClick一样。  
  end;  
   
   
   
   
   
   
  var  
    vMethod:   TMethod;  
  begin  
    vMethod.Code   :=   TForm1.MethodAddress('MyClick');  
    vMethod.Data   :=   Self;  
    TNotifyEvent(vMethod)(nil);//效果和执行   Self.MyClick一样。  
  end;Top

2 楼zgc7622(张远_7622)回复于 2006-02-18 10:09:28 得分 0

仁兄写的代码中,那个是DLL里面调用的,那个是在EXE中写的呢??Top

3 楼zgc7622(张远_7622)回复于 2006-02-18 10:17:53 得分 0

是这样的我的DLL有   一个导出函数,我想给这个导出函数中传入一个参数就是我EXE中的函数A的指针。  
  这样我就可以在DLL中调用A函数了。Top

4 楼cuteant(我这张旧床票还能否登上你的破床|涛声是否依旧)回复于 2006-02-18 10:19:53 得分 0

library   MyDLL;  
   
  uses  
      SysUtils,  
      Classes;  
   
  {$R   *.res}  
   
  var  
      Func:   procedure   (count:   integer);   //定义一个函数指针  
   
  procedure   SetCallbackProc(pFunc:   Pointer);  
  begin  
      Func:=pFunc;   //给函数指针赋值  
      Func(100);   //调用函数  
  end;  
   
  exports  
      SetCallbackProc;  
   
  begin  
   
  end.  
   
  ///////////////////////////////////////////////////////////////////  
   
  program   MyAPP;  
   
  {$APPTYPE   CONSOLE}  
   
  uses  
      SysUtils;  
   
  procedure   SetCallbackProc(pFunc:   Pointer);   external   'MyDLL.dll';  
   
  procedure   Func(count:   integer);   //定义回调函数(在DLL里面调用)  
  begin  
      WriteLn(count);  
  end;  
   
  begin  
      {   TODO   -oUser   -cConsole   Main   :   Insert   code   here   }  
      SetCallbackProc(@Func);   //将函数指针传入DLL  
      ReadLn;  
  end.Top

5 楼zgc7622(张远_7622)回复于 2006-02-18 11:56:11 得分 0

OK,按照老兄的说法已经搞定了。谢谢!!Top

相关问题

  • 初学XML,希望各位高手、仁兄帮助!
  • 各位仁兄:帮帮忙!!
  • 各位仁兄请帮忙!
  • 请各位仁兄帮忙!!
  • 各位仁兄帮帮忙!!
  • 各位仁兄请帮忙
  • 界面的问题,各位仁兄帮一下忙吧!多谢!!!(在线等待)
  • 各位仁兄讨论一下在Struts开发的时候是所用的IDE
  • icewm中的一段代码,希望各位仁兄解释一下。
  • 各位帮助一下!!!

关键词

  • 函数
  • 指针
  • dll
  • setcallbackproc
  • vtestevent
  • vmethod
  • myclick
  • 调用
  • pfunc
  • func

得分解答快速导航

  • 帖主:zgc7622
  • cuteant

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo