2013-03-23 112 views
2

我有一個COM DLL,用Delphi編碼。當網頁加載到MS IE中時(通過頁面上的soem JavaScript),它應該通過Active X控件進行調用。爲什麼我的DLL似乎沒有被調用?

順便說一句,這一切工作正常,與現有的串行端口接口,但我重新編碼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
  • ,它具有正確的大小和日期/時間
  • %path%%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;系統和空用戶

任何想法,我做錯了什麼?或者我可以怎樣去追蹤它?

+1

如何在MSIE中加載ActiveX控件?你有沒有任何HTML或VBScript代碼的網頁? – 2013-03-23 10:41:47

+0

@PrahladYeri +1 JavaSCript – Mawg 2013-03-24 01:12:33

回答

1

如果您通過JavaScript在網頁中加載ActiveX控件,則必須打包Web部署控件。見這個例子如何做到這一點在你的JavaScript,檢查你是否得當與否:

Calling Activex Control 's Functions from javascript

一旦你正確地做上述的事情,並在IE中打開你的網站時,網頁會至少「加載」ActiveX控件。除此之外,您可以在Delphi代碼中顯示消息框或寫入日誌以追蹤實際的編碼問題。

+0

+1並感謝您的回覆。對不起,延遲迴到你身邊。我不確定我是否按照你引用的問題。在我的註冊表'HKEY_CLASSES_ROOT \ Wow6432Node \ CLSID \ {0004C7F4-BCCC-4476-8C0C-F045E2E0A1F7}'和'HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ TypeLib \ {30F57A6B-D06D-4640-B19B-34A70EB64181}中調用'regsvr32'後, '和幾個更多的引用標識我的typelib的GUID。我需要做更多的事嗎? – Mawg 2013-03-27 06:45:58

+1

你做了什麼代碼更改來從USB讀取它?因爲應用程序不需要知道底層硬件,所以它只需要一個對象引用來延遲綁定。 – 2013-03-27 09:00:52

+0

+1這是一個完整的重寫 – Mawg 2013-03-29 00:18:24

相關問題