请说说ObjectPascal中的类和接口的区别,
特别是接口的用法,我不是很理解,能解析一下吗。
分不是问题.
特别是接口的用法,我不是很理解,能解析一下吗。
分不是问题.
解决方案 »
- pcomm.dll接收数据有问题
- fastreport打印问题
- 有关调试工具的问题?
- 要不要将SQL SERVER 客户端啊?
- 请问如何通过程序把excel里面的数据导入到数据库里面?
- applyupdate(0)更新带有触发器的表时总是提示错误:"record not found or changed by another user
- 我的处男作!
- 哪位高手通过编码自动生成WORD文档,不啻指教,定当高分酬谢!
- 谁能给一个使用SSL加密技术的例子?
- 紧急求救!!!!!!!!!!!!!!!!!!!!!
- -----------ADOconnection出毛病了----------
- 请问如何Debug MIDAS服务程序
然后你在Dll中向主程序返回了一个StringList的实例并由主程序调用了该实例的Add方法。这时候你会得到一个异常。很多人不理解为什么同一个类会出现这样的问题。其实你调用的只是连接在主程序中的TStringList的Add方法,而你其实应该调用Dll中的TStringList的Add方法才不会出异常。这两个TStringList虽然名称相同,但却不可以认为是同一个类,因为它们拥有完全不同的方法表(即它们各个方法的地址是不同的),所以你的Add调用会出错。2、如果你写了一个IStringList的接口并在Dll中实现了它(记住接口声明和实现通常是两个Unit),并在主程序中把接口声明连接了进去,那么你在主程序中调用IStringList1.add的时候就能够调用到Dll中接口实现部分的代码。所以一般地说在程序与Dll通信的时候使用接口作为参数要比使用对象要安全的多。
不过话又说回来,使用接口还有很多的注意点。相对也比较麻烦,所以在一个相对封闭的程序框架中并不常用。