WindowsMobile6.1を対象とするハンドヘルドスキャナーのソリューションを作成しました。ここで、このソリューションをActiveXに埋め込んでIE8(モバイルではない)で実行できるかどうかを知る必要があります。これは、ハンドヘルドが利用できない場合のバックアップです。明らかにスキャン機能は機能しませんが、それ以外に、それを変換することは可能ですか?同じコードの複数のコピーを管理する必要はありません。
2 に答える
いいえ、できません。Compact Framework は EE Hosting をサポートしていないため、Compact Framework 用のものを直接 COM/ActiveX オブジェクトにコンパイルする方法はありません。
デスクトップ C# プロジェクトを作成し、コード ファイルを取り込んで ActiveX コントロールにコンパイルできますか? それはあなたがやりたい仕事の量に依存します。最低限、公開されているすべてのクラスの COM インターフェイスを定義し、Guid、InterfaceType、ComVisible などのクラスに属性を追加し、各プロパティに Didpid を追加する必要があります。公開されているすべての型が COM 対応であり、インターフェイスも備えていることを確認する必要があります。そのコードベースを既存の CF アプリとしてコンパイル可能に保つことは、それ自体が大きな課題になります。
もちろん、その場合は P/Invokes で問題が発生します (そして、それらを必要としない CF アプリは非常にまれです)。それらをさらに別のインターフェース(またはそれ以上)で抽象化する必要があります。また、UI レベルでの Window 処理は変更が必要になる可能性があります。
すべてが機能するようになるまでには、おそらく、ブラウザー用にアプリを完全に書き直すことにもっと時間を費やしていることでしょう。
これは、あるレベルで可能であることを示唆しているように思われます。
http://www.dreamincode.net/forums/topic/38890-activex-with-c%23/
しかし、私と別の開発者は、これをモバイル ブラウザで動作させるために何週間も試みましたが、成功しませんでした。それがプロジェクトの種類自体なのか、デバイスの制限なのかはわかりませんが、再生したくありませんでした。
ctacke が示唆したように、私はこのアイデアに非常に広い寝台を与えます。ActiveX は古いテクノロジであり、IE に限定されます。可能であれば、これを別の方法で行うことを強くお勧めします。