1

メッセージボックスを表示するシンプルなボタンを使用して、非常にシンプルなユーザーコントロールActiveXを作成しました。

namespace AxCPW
{
    public partial class Test: UserControl, ITest
    {
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Hello World");
        }
    }
}

次に、asp.netプロジェクト内にWebページを作成し、それにユーザーコントロールを埋め込みました。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
    <object id="myControl" name="myControl" classid="AxCPW.dll#AxCPW.Test" width="100" height="100">
    </object>
</body>
</html>

問題は、UserControlの代わりに壊れた画像が表示されることです。IE9にローカルホストWebサーバーの信頼済みサイトを既に追加していますが、機能しません。

ActiveXが廃止されたソリューションであることは知っていますが、3番目の部分のsdk dllを使用する必要があり(USBでデバイスと通信するため)、利用可能なソリューションはこれだけだと思います

4

1 に答える 1

0

ActiveXはCOMテクノロジ(基本的には「COM-in-a-webpage」)であり、.NETテクノロジを理解していません。

C#で開発されたActiveXコントロールを使用するには、COMを介してインターフェイスを公開する必要があります。また、 GACに追加されたアセンブリではなく、レジストリに書き込まれたCOM登録情報が必要なためRegAsmではなく、を使用してDLLを登録する必要があります。gacutil最後に、classid属性は「わかりやすい名前」ではなく、COMGUIDである必要があります。

ActiveXコントロールを自動的に展開する必要がある場合、およびGUIDを使用したサンプルHTMLについては、Internet Explorerで使用するCABにC#ActiveXを展開するための私の回答を確認してください。

于 2012-09-07T09:01:57.310 に答える