2

Delphi でコーディングされた COM DLL があります。これは、Web ページが MS IE に読み込まれるときに (ページ上の soem JavaScript を介して) Active X コントロールを介して呼び出される必要があります。

ところで、これはすべて既存のシリアル ポート インターフェイスで正常に動作しますが、USB から読み取るように DLL を再コーディングしています。他のすべては変更されません。

Delphi IDE では問題なく動作しますが、「現場」では動作しません。アクティブな X コントロールは、USB ポートからの入力を読み取るように要求し、それを Web ページに送信する必要があります。

メモ帳を開いてそこに書き込まれている値を確認できるため、USB デバイスからの読み取りは機能します。

DLL はフォームとダイアログ ボックスを表示し、システム デバッグ トレースに書き込みます。MS IE で Web ページを読み込んでいるときにこれらのいずれも表示されないので、Aactive 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の下に のコピーが 1 つしかありません。
  • 正しいサイズと日付/時刻を持っています
  • my%path%%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;システム用で、ユーザーは空です

私が間違っていることは何ですか?または、どうすれば追跡できますか?

4

1 に答える 1

1

JavaScriptを介してWebページにActiveXコントロールをロードする場合は、Web展開用にコントロールをパッケージ化する必要があります。JavaScriptでこれを行う方法については、この例を参照し、正しく実行したかどうかを確認してください。

JavaScriptからActiveXコントロールの関数を呼び出す

上記のことを正しく行い、IEでWebサイトを開くと、Webページは少なくともActiveXコントロールを「ロード」します。さらに、メッセージボックスを表示したり、Delphiコードにログを書き込んで、実際のコーディングの問題を追跡したりできます。

于 2013-03-24T04:31:03.477 に答える