捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  沪ICP备05001939号 DELPHI盒子 | 盒子论坛 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 论坛检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
盒子资源分类
全部展开 - 全部合拢
如何在dll中导出无名字函数
关键字:dll 无名字函数 func exports
来 自:原创
平 台:Win9x,Win2k/XP/NT,Win2003 下载所需:0 火柴
深浅度:初级 完成时间:2005/11/4
发布者:upp 发布时间:2005/11/4
编辑器:DELPHI7 语  种:ENGLISH
分 类:系统 下载浏览:0/10196
加入到我的收藏
下载错误报错
登陆以后才能下载
 用户名:
 密 码:
自动登陆(30天有效)
无图片
通常我们在查看 Windows 的 DLL 的时候,总是能看到一些隐含函数,这些函数即使在MS的文档中也没有说明,当然有些高手则可以通过 index 来调用某些未公开函数。那么我们有办法在 delphi 中生成没函数名的 dll 吗?当然可以。

library Project2;

{ Important note about DLL memory management: ShareMem must be the
  first unit in your library's USES clause AND your project's (select
  Project-View Source) USES clause if your DLL exports any procedures or
  functions that pass strings as parameters or function results. This
  applies to all strings passed to and from your DLL--even those that
  are nested in records and classes. ShareMem is the interface unit to
  the BORLNDMM.DLL shared memory manager, which must be deployed along
  with your DLL. To avoid using BORLNDMM.DLL, pass string information
  using PChar or ShortString parameters. }

uses
  SysUtils,
  Classes;

{$R *.res}

procedure a;
begin

end;

procedure b;
begin

end;

exports
  a index 1 name '',
  b index 2 name '';

begin
end.

注意,a和b两个函数在生成了 dll 后都看不到名字。如果把他们后面的 name ''去掉的话,编译后的 dll 将能看到a和b两个函数。
Google
 
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们
龙脉加密锁 15元起 Grid++Report 报表 申请支付@网
 相关文章
如何在dll中导出和使用无名字函数(demo)
upp 2005/11/5 下+1211/浏+10331 评+3
如何在dll中导出无名字函数
upp 2005/11/4 下+0/浏+10197 评+12
相关评论
共有评论12条 当前显示最后6条评论
coolslob 2005/11/5 20:47:14
调用无名函数,你事先已知道了该函数(s)的参数列表。

假设,我的函数带有参数呢?
upp继续努力!


to robot5,
你在问题在http://www.2ccc.com/article.asp?articleid=2709中有解释。
coolslob 2005/11/5 20:50:09
如果能做到,在不知函数参数列表的情况下,仍可探测出参数进行调用,那就NB了。
upp继续努力!
robot5 2005/11/7 2:24:51
谢谢coolslob 同时更谢谢upp的无私!
upp 2005/11/7 11:55:43
to coolslob
我的例子只是在演示如何学微软那样,把不远公开或者不远别人探测到函数的名字在dll中隐藏的方法,而不是解决如何调用微软隐藏函数的.正如我们所知道的,函数没有名称,即使你知道了函数调用参数,无法对应上正确的Index是无法完成调用的.制作这个例子的作用在于,对外隐藏,也就是说,除了作者本人知道怎么调用外,其他人想利用我们的dll写程序,就不那么容易了.
xjk_kp3000 2006/6/6 8:20:22
请问在VB中能调用这种函数吗?如何调用?
知道的朋友请email:kp3000@163.com给我,我先谢谢了
dfw@65628 2008/3/3 11:47:25
隐藏名字就想别人不知道你的函数?太天真了。
我要发表评论 查看全部评论
 
  DELPHI盒子版权所有 1999-2023 V4.01 粤ICP备10103342号-1 更新RSS列表