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

2016-02-19 18:25 30 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使用主程序中对象的方法好象没有这个限制,不知道为什么?

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

延伸阅读
标签: Delphi
    一.DLL 库内存共享机制   从使用效果看,DLL和unit 很像,它们都可以被别的工程模块所调用,但二者在内部的实现机制上确存在着差别。如果一个程序模块中用uses语句引用了某个unit,编译程序在编译该模块时,便会连同unit一起编译,并把编译后的可执行代码链接到本程序模块中,这就是一个程序模块能够调用所引用unit中过程...
标签: Delphi
  在用Delphi 3.0开发软件时,出现了硬件驱动程序(DLL)中的函数和过程不能正常调用的问题,该硬件由英国Schlumberger公司生产,驱动程序用汇编语言编写的。其《编程指南》给出的Microsoft C的示范程序均能正常运行。但运行此软件时现出的错误提示为: Access violation at address ×××××××× in module…… 经仔细分析...
  如果你想脱离asp爱好者的水平,那么你就应该学会为asp编写组件。我在google上搜索了一下,Delphi编写asp组件的文章一共就几篇,所以今天写了这篇Delphi编写asp组件的基础文章,希望对新手有点帮助。如果你要学习VB编写asp组件的话,建议看看龙卷风大哥的文章(http://blog.csdn.net/online/category/9939.aspx),不是我可以比的。呵呵:)...
标签: ASP
       在ASP文件中调用DLL   作者:陈敏杰    动态联接库(DLL)是加快应用程序关键部分的执行速度的重要方法,但有一点恐怕大部分人都不知道,那就是在ASP文件也能通过调用DLL来加快服务器的执行速度,下面我简单的介绍一下在ASP文件调用DLL的步骤。    首先,必须...
Calling conventions(调用约定)    在声明过程或函数时,你可以使用下面的指示字之一来指明调用约定:register、pascal、cdecl、stdcall以及safecall。比如, function MyFunction(X, Y: Real): Real; cdecl; ...       调用约定决定了参数被传递给例程的顺序,...

经验教程

67

收藏

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