【发布时间】:2016-06-15 18:43:32
【问题描述】:
我使用 Delphi 开发了一个.ocx。
Rad Studio 自动为我生成了一个.ridl 文件。
我创建了一个加载.ocx activeX 的html 页面,它可以正常工作。
现在,我需要从 Html 页面中的 Javascript 调用 .ocx 文件中的一个函数,我知道这是可能的,但我不知道怎么做。我想我必须以某种方式配置 .ridl 文件,但我找不到任何关于它的文档。
现在,我在我创建的表单中声明了一个公共函数,如下所示:
procedure WriteText(const text: string); safecall;
并且,从 Javascript,我这样称呼它:
document.forms[0].MyProjectName.WriteText('foo');
但我收到了错误 variable type invalid(我有点怀疑它是 EOleSysError 类型错误)。所以我可以看到 WriteText 函数,但我不能使用它。
我还尝试将函数中的string 类型替换为WideString 和PWideChar,但总是出现相同的错误。
我该如何解决这个问题?
【问题讨论】:
-
请记住,微软在很多很多年前就放弃了对网页中 ActiveX 的支持。只在 IE 中工作,他们甚至没有把它带到 Edge 上。
-
20 世纪末的时间旅行者!欢迎!
-
啊哈哈好吧,我理解它是一种已被弃用的技术,但..我必须处理它!
-
FWIW,几年前我尝试使用 Delphi 为 Windows 7 桌面编写小工具。它本质上是一个 HTML 文档,我可以嵌入在 Delphi 中构建的 ActiveX 控件。这很草率,但它奏效了。就在上周,我尝试使用这些小工具,但它们不再起作用。我也不想重新选择这个项目,因为我知道这不值得。