Windows 为什么我的DLL似乎没有被调用?

Windows 为什么我的DLL似乎没有被调用?,windows,web-applications,dll,activex,Windows,Web Applications,Dll,Activex,我有一个COM DLL,用Delphi编写。当网页加载到MSIE中时(通过页面上的SOEMJavaScript),应该通过活动X控件调用它 顺便说一句,这一切工作与现有的串行端口接口很好,但我正在重新编码DLL读取从USB;其他一切都是不分年龄的 它在DelphiIDE中运行良好,但在“现场”中不起作用。active X控件应请求它从USB端口读取一些输入,然后将其发送到网页 从USB设备读取数据是可行的,因为我可以打开记事本,看到其中写入的值 DLL将显示一个窗体和一个对话框,并将写入系统调试

我有一个COM DLL,用Delphi编写。当网页加载到MSIE中时(通过页面上的SOEMJavaScript),应该通过活动X控件调用它

顺便说一句,这一切工作与现有的串行端口接口很好,但我正在重新编码DLL读取从USB;其他一切都是不分年龄的

它在DelphiIDE中运行良好,但在“现场”中不起作用。active X控件应请求它从USB端口读取一些输入,然后将其发送到网页

从USB设备读取数据是可行的,因为我可以打开记事本,看到其中写入的值

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

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

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

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


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

如何在MSIE中加载ActiveX控件?你有网页的HTML或VBScript代码吗?@PrahladYeri+1 JavaSCript+1,谢谢回复。很抱歉耽误了你的回复。我不确定我是否理解你提到的问题。调用
regsvr32
后,我的注册表中有
HKEY_CLASSES\u ROOT\Wow6432Node\CLSID\{0004C7F4-BCCC-4476-8C0C-F045E2E0A1F7}
HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\TypeLib\{30F57A6B-D06D-4640-B19B-34A70EB64181}
以及更多关于标识我的类型库的GUID的参考。我还需要做些什么吗?你做了哪些代码更改来从usb读取它?没有必要,因为应用程序不需要知道底层硬件,它只需要latebind的对象引用。