我试图让 XSL 使用扩展对象上的函数,但我尝试的一切都只是告诉我函数不存在。
在我的 lib_TLB.pas 文件中,我有
function Get_ReadOnly: WordBool; safecall;
在实现的接口上定义IDispatch
,我将其传递给我IXSLProcessor
的 withproc.AddObject( obj, 'foo' );
我xmlns:foo="foo"
在xsl:stylesheet
元素中声明,但是当我尝试使用它时<xsl:value-of select="foo:Get_ReadOnly()"/>
,它只是说该函数不存在。
我是否在某处遗漏了一步,或者说错了?
编辑:仔细检查后,它确实有效,只是不适用于作为属性获取器的任何功能。该函数具有关联的属性,并且foo:get-ReadOnly()
工作正常。要么是这样,要么是因为在该接口的实现上定义的函数是“受保护的”而不是“公共的”。
无论哪种方式,如果有人能阐明其工作原理的规则是什么,而不是我在反复试验中摸索,我将不胜感激。