- - PR -
[VB.NET+VB6+IIS] OCX(ActiveX)を、VB.NETから動的に参照したい。
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-11-20 14:43
[今まで]
・ローカルマシンにOCX(COM)をインストールし、objectタグを利用してローカルマシンのOCXを使用する →IISサーバにはOCX等は置かない →OCX自体はVB6で作成 [やりたいこと] ・OCXをVB.NET2005のWindowsフォームコントロール(以下wf_ctl)に、順次移植していく予定です。 →現在の段階では一部を移植し、残りは既存OCXを流用する。 →COMの相互運用機能をチェック →(IEに表示する)wf_ctlのプロジェクト参照に、OCXを追加することは出来ますが、 実際にIEから表示しようとすると例外が発生します。 →下の「CLASSIDエレメントを変更」した時にプロジェクト参照から外しました。 [試したこと+調べたこと](見当違いがあるかもですが^^;) ・gotdotnet等でobjectタグのCLASSIDには"http:AAA.BBB.dll#AAA.BBB"と指定し、IISの物理フォルダにDLLを入れておく →「IISサーバにはOCX等は置かない」に違反するが、許容範囲と考えた ・wf_ctlに直接OCXを貼り付け →System.IO.FileNotFoundExceptionが発生 ※IEのセキュリティ ポリシーは、信用済みサイトになってます。 ※コード アクセス セキュリティ ポリシーは、FullTrustになっています。 ・CLASSIDエレメントの"http:AAA.BBB.dll#AAA.BBB"を"AAA.BBB.dll#AAA.BBB"に変更しても動くのを確認 →regasmしました。 ・ここの過去ログから、System.Refrection.Assembly.Load〜等でアセンブリ(といってもOCX)をロード →System.BadImageFormatExceptionが発生 ※OCXをそのままアセンブリをロードしようとしたのでが原因だと推測していますが、解決方法がわかりません。 →tlbinpやtlbexpもダメ よろしくお願いします。 P.S. 元VB6のソースはありますので、あまり変更したくありませんが、修正する事は可能です。 −−− タイトルを変更 [ メッセージ編集済み 編集者: うきょきょ 編集日時 2006-11-20 15:41 ] | ||||
|
投稿日時: 2006-11-20 18:31
AxImpでした。 タイプライブラリだとばっか思ってたのですがAxHostを使って、 Ax($ライブラリ名).dllを参照後に出来るようになりました。 #BeginInit〜EndInitも忘れずに・・・ |
1