[教程]栈上接口对象在匿名函数中的使用时请注意内存泄露问题

首先看下面的示例代码: 一般来说,我们认为 Delphi 自己管理接口的引用计数,所以不太会注意,但是,在上面的示例中,由于要保证 ATest 在匿名函数中的可用性,Delphi 并没有在函数退出时,减少 ATest 的引用计数,而在匿名函数执行完成后,同样也并没有减少计数,这就造成了 ATest 实例的引用计数没有减

[杂谈]Delphi 与 VC 通过接口交互时的一点问题的说明

首先,调用都是使用 stdcall,但是在返回接口类型时,VC 和 Delphi 对调用的处理不一致,造成接口无法正常使用。 通过查看返回接口和普通类型的值的对比,可以发现 Delphi 在实现返回接口的调用时,对对象的地址使用了esp+8,而对普通类型时,对象的地址取的是esp+4,这样就造成两者对应的对象原始地址错

[教程]如果在 Delphi 中重载父类重载的接口中的某个非虚函数

好吧,这个问题可能够无聊,反正父类已经实现了,为啥不用父类的一类的问题就不要问了,反正这个事也没啥可争论的,只是告诉大家一种关于接口的写法。 我们都知道 Delphi 中接口对象一般从 TInterfacedObject 继承,但 QueryInterface 函数却不是虚函数,所以想重载是无门的,为此 QPlugin

[教程] 手动将微信开放平台的 iOS SDK 转换到 Delphi 接口

1、下载 SDK,得到相应的头文件和静态链接库 .a; 2、打开 *.h ,然后挨个翻译,翻译的规则: enum 是枚举类型,直接翻译成 delphi 对应的枚举类型就可以了 NSENUM 直接翻译成对应的常量定义 @interface 声明的是一个接口,在 Delphi 中需要做简单的对应 2.1、声明一个对应的类的

[杂谈] SDKTransform 试用笔记

SDKTransform 是 RadStudio 10 Berlin (后面称Berlin)里带的转换工具,可以将 iOS 或 OSX SDK 里的头文件转换为 Delphi 的接口文件。它是一个命令行工具,所以,需要你手动去在命令行下运行。 要使用它,你需要: 到 CLang 的官方去自行下载 CLang,然后安装,

Delphi调用C语言接口的几点小提示

1、对方给你DLL可能未声明正确的调用方式。一般来说接口都是stdcall或cdecl两种形式的,当然COM时有safecall,但COM对象一般直接导入,不需要自己手写,所以没啥问题。 2、将C语言的char/char *转换到Delphi时,一定要注意它对应的类型不能简单的理解为PChar,因为PChar的定义是有