Delphi中的DLL封装和调用对象编写碰到的问题

2016-02-19 18:25 26 1 收藏

想要天天向上,就要懂得享受学习。图老师为大家推荐Delphi中的DLL封装和调用对象编写碰到的问题,精彩的内容需要你们用心的阅读。还在等什么快点来看看吧!

【 tulaoshi.com - 编程语言 】

具体的DLL封装对象请看刘艺的《Delphi中的DLL封装和调用对象技术》及配书源码。
  本人在使用DELPHI编制DLL过程中碰到了些奇怪的问题,现在将其列出来,仅供参考:
  1、DELPHI生成的DLL工程中写到:ShareMem must be the first unit in your library's USES clause AND your project's。这里提到的是DLL工程和使用该DLL的工程都需要引用ShareMem单元。
      ShareMem单元最好加到工程里面,因为在实际使用中发现,有时工程与DLL之间传递对象来使用,对象有STRING类型的属性时,可能会出现奇怪的错误。
  
  2、调用DLL函数定义问题:
      当DLL中输出:function ABC: IInterface;
      而在程序中如下定义函数调用:
          type
            TFunc = function: IInterface; stdcall; //多了个stdcall
      会出现奇怪的错误,应该定义成和DLL中定义的一样:
          type
            TFunc = function: IInterface;
  
  3、当使用到DLL中的接口,记得用完后必须在DLL中对象释放前设置为NIL;
  
  4、DELPHI中调试DLL:经常碰到调试DLL时,加不了断点的问题。看看DLL中的设置,编译后DLL的输出路径和设置调用该DLL的主程序路径设置是否一样,并且都应该是绝对路径;
  
  5、《Delphi中的DLL封装和调用对象技术》中提到,DLL 在封装对象上主要的限制在于
  ?? 1、调用DLL 的应用程序只能使用DLL 中对象的动态绑定的方法
        2、。。。
        3、。。。
      对于DLL使用主程序中对象的方法好象没有这个限制,不知道为什么?

来源:https://www.tulaoshi.com/n/20160219/1617582.html

延伸阅读
标签: Delphi
    一.DLL 库内存共享机制   从使用效果看,DLL和unit 很像,它们都可以被别的工程模块所调用,但二者在内部的实现机制上确存在着差别。如果一个程序模块中用uses语句引用了某个unit,编译程序在编译该模块时,便会连同unit一起编译,并把编译后的可执行代码链接到本程序模块中,这就是一个程序模块能够调用所引用unit中过程...
标签: ASP
       在ASP文件中调用DLL   作者:陈敏杰    动态联接库(DLL)是加快应用程序关键部分的执行速度的重要方法,但有一点恐怕大部分人都不知道,那就是在ASP文件也能通过调用DLL来加快服务器的执行速度,下面我简单的介绍一下在ASP文件调用DLL的步骤。    首先,必须...
标签: Delphi
  在用Delphi 3.0开发软件时,出现了硬件驱动程序(DLL)中的函数和过程不能正常调用的问题,该硬件由英国Schlumberger公司生产,驱动程序用汇编语言编写的。其《编程指南》给出的Microsoft C的示范程序均能正常运行。但运行此软件时现出的错误提示为: Access violation at address ×××××××× in module…… 经仔细分析...
标签: Delphi
  Delphi作为一种面向对象的可视化开发工具,以其开发程序的高速度和编译代码的高效率越来越受到广大编程人员的喜爱。尽管Delphi已经提供了非常强大的开发组件(VCL),但灵活使用API函数一定可以使你的程序增色不少。 状态键的检查 当今不少流行软件的编辑窗口(包括Delphi的代码编辑窗口)的底部都有一个状态条...
我的主页: http://www.tommstudio.com/ 在Delphi程序设计中,我们需要通过解除建立的所有对象来避免内存泄漏。但是,如果你在程序中不谨慎小心的话,很容易多次解除同一个对象,这将会引起很严重的错误,造成应用程序崩溃,甚至是死机。 请看下面的程序: procedure TForm1.Button1Click(Sender:TObject); ...

经验教程

990

收藏

17
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部