当前位置:首页
开发技术指南» 文章正文
    引言:

    摘要: 各位高人,现在用.net开发asp.net网站,环境配好了,可是不知道在哪里写代码啊?还有页面的编辑怎么写呢?找不到路啊,请高人指点一下,给你50分 - - - ......
    摘要: 请cncharles(旺仔)进来领分 ......


Exe文件的输出函数的利用

在Delphi中,新建一个Application,在Dpr单元写个最简单的单元,用Exports也能输出这个函数。  
  用PE分析软件也能在Exe文件的输出表中找到该输出函数。  
   
  但是在另外一个Exe文件中,把它当Dll调用,都返回不了正确结果呢?

NO.1   作者: xixuemao

我把输出函数改成beep也是内存错误。晕

NO.2   作者: yifei1900

我用BCB测试了一把,  
  还是不行,  
  可以找到函数入口,  
  但是地址好象指错了。

NO.3   作者: mbmseason

我想,问题可能出在Borland自身的实现机理上与Windows执行原理的冲突上。  
   
  如果查看Borland提供的Rtl源代码,可以看到,Delphi在每个EXE工程的开始处都保留了自己的句柄、内存空间、以及重定位了一些全局函数。  
  但是,根据Windows的执行原理,调用的DLL与调用者处在同一平坦内存区域,内存中所有全局性的东西是共用的,而不是各自有所保留。

NO.4   作者: gobiz

个人认为,应该是Application.Handle的问题,当作为Exe直接运行的时候,会产生新的Application.Handle,所以你的MessageBox可以正确执行,而当作Dll运行的时候,不会生成新的Application.Handle,而MessageBox是Application的方法,既然没有Application,那么肯定会有问题的,你可以把主调用程序的Handle传递进去试试吧。  
   
  =============================================================================  
  声明:本人绝对不是高手,最多是一个低手,以上只是胡说几句,对就对,错了也不要笑话!  
   
  祝好运……


 ·中国企业的心态    »显示摘要«
    摘要: 在不少国内的门户网站上经常可以看到这种栏目:《2005年什么行业最挣钱》《如何暴富》《开个特色店年入百万》,其实这体现了国内很多中小企业(及个人)的心态,可以想想为什么中国缺少核心竞争力了。最要命的是一些大企业也如此做法,比如联想的手机,本人买了个联想手机没过3月就拿去修了2次,还听说有一款联想手机的返修率高达100%,我有一哥们买一tcl的手机也巨难用。总结了一下:联想对于它的手机明知道......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE