2

我有一个 COM DLL,用 Delphi 编码。当网页在 MS IE 中加载时(通过页面上的 soem JavaScript),它应该通过 Active X 控件调用。

顺便说一句,这一切都适用于现有的串行端口接口,但我正在重新编码 DLL 以从 USB 读取;其他一切都未发生。

它在 Delphi IDE 中运行良好,但不是“在现场”。活动的 X 控件应请求它从 USB 端口读取一些输入,然后将其发送到网页。

从 USB 设备读取是有效的,因为我可以打开记事本并查看其中写入的值。

DLL 将显示一个表单和一个对话框,并将写入系统调试跟踪。由于在 MS IE 中加载网页时我没有看到这些,我认为我们可以假设 Aective X 控件没有调用 DLL。

  • 在 MS IE 中,我启用了所有 Active X 选项。
  • 在c:\Windows\System32(相当于c:\Windows\SysWOW64)中,我有regsvr32.exe -u my_dll.dll然后regsvr32.exe my_dll.dll这两个系统都宣布成功
  • my_dll.dll我搜了一下, c:\Windows下只有一份
  • 它有正确的大小和日期/时间
  • my用于系统,为用户为%path%%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;

知道我做错了什么吗?或者我该如何去追踪它?

4

1 回答 1

1

如果您通过 javascript 在网页中加载 ActiveX 控件,则必须将控件打包以进行 Web 部署。请参阅此示例以了解如何在您的 javascript 中执行此操作,并检查您是否正确执行了此操作:

从 javascript 调用 Activex Control 的函数

一旦您正确地执行了上述操作并在 IE 中打开您的网站,该网页至少会“加载”ActiveX 控件。除此之外,您还可以在 Delphi 代码中显示消息框或编写日志来追踪实际的编码问题。

于 2013-03-24T04:31:03.477 回答