delphi – 在树视图节点内存储接口指针 我试图在TTreeNode.Data属性下的树视图中存储接口指针.虽然我能够存储一个接口指针但它似乎没有相反的方式.总是没有.我也试图使用手动引用计数,正如我在anotherquestion中看到的那样.然而,它仍然是零,现在给内存泄漏.这样做的适当方法是什么?
delphi – TTypeInfo之前的“身份指针”是什么? 如果你在Delphi内部进行足够的讨论,你会发现一些奇怪的东西,并且显然没有记录编译器生成的TTypeInfo记录.如果PTypeInfo指向地址X处的TTypeInfo记录,则在X-4处,您将发现接下来的4个字节描述了指向X的指针.例如:将编译器生成的任何合法的PTypeInfo传递给此例程,并且它将输出相同的地址两次.我在TypInfo.pas中稍微捅了一下,但是我没有看到任何提到这个“身份指针”的东西或它的用途.有谁知道为什么会这样?
delphi – 如何在类型常量中包含方法指针? 解决方法对象的方法是所谓的双指针类型.它封装了以下信息:>功能的地址.>对象的地址或主题.前者在编译时是已知的,但通常后者不是.这就是您通常需要在运行时创建这些东西的原因.如果您可以安排在编译时知道主题,那么您可以声明记录类型的类型常量.例如:当然,如果你的函数作为类方法而不是实例方法可行,那么这对你有用.我只是添加上面的代码来说明你可以拥有常量方法指针,只要主题是编译时常量.
delphi – PChar(”)是否保证是指向#0(不是nil)的指针? 据我所知,在Delphi中,空字符串可以用nil指针表示,也可以用指向实际空字符串的指针表示.通过实验,我已经证明在DelphiXE2中,PChar(”)零.但这是保证,还是可能在未来的版本中更改,或者依赖于某些编译器设置?
delphi – E2010不兼容的类型,为什么? 我收到这个错误:以下是来自JwaStrSafe.pas的代码的相关部分,我正在使用UNICODE定义的符号进行编译:我在参数ppszDestEnd上调用StringCchcopyExW时出错.查看类型定义我明白PSTRSAFE_LPTSTR是STRSAFE_LPTSTR的指针类型,它只是STRSAFE_LPWSTR的别名,为什么PSTRSAFE_LPTSTR和PSTRSAFE_LPWSTR不兼容?
delphi – 如何将nil传递给var参数? 编辑:从DavidHefferman的评论来看,似乎标准的做法是重新声明这样的例程.就个人而言,我更喜欢使用标准声明,如果我可以在我自己的个人单位,但出于专业工作的目的,我建议开发人员遵循标准做法.
通过访问Delphi记录字段.或^ 我在Delphi语言中遇到过一些我之前没有注意到的东西.考虑一个简单的记录和指向该记录的指针:现在声明一个PTRecord类型的变量:并创造一些空间:我注意到我可以使用’.’来访问值字段.符号和’^.’符号.因此,以下两行似乎在操作上是等效的,编译器不会抱怨并且运行时工作正常:我原以为’^.’是正确的,唯一的方式来获取价值?
在Delphi 6类声明中分配接口指针? 尽管多年的Delphi编程我刚刚遇到了一个类声明样式,我从来没有看到支持IUnkNown的类:您可以看到,IUnkNown接口方法的类方法的分配正在类声明中进行.这对我来说真的很奇怪,特别是因为在调用构造函数之前,我没有看到IUnkNown方法可以如何分配给它.这是一种编译时快捷方式,用于在类的方法和类接受的接口的接口指针之间进行分配,稍后在运行时解析?