- PR -

HTMLドキュメントからマネージドコードの読み込みについて

投稿者投稿内容
kaseda
会議室デビュー日: 2002/08/07
投稿数: 19
投稿日時: 2002-11-22 11:18
過去のMSDNマガジンに載っていたサンプル(HTMLの中からマネージドコードを呼び出すサンプル)を
試しているのですがうまく動作しません。
試そうとしているサンプルは、WindowsフォームのListBoxコントロールをつかったアセンブリファイルを
作成し、それをHTMLドキュメントから<OBJECT>で読み込み、ブラウザにListBoxを表示させるものです。

現在の状況は、ブラウザにListBoxが表示されず、
ステータスバーに"オブジェクトでサポートされていないプロパティまたはメソッドです。"
のメッセージが表示されています。
本にあったサンプルソースそのものを使用しているのですが、動作しないといった状況です。
設定等の問題なのでしょうか?
和哉提督
常連さん
会議室デビュー日: 2002/07/17
投稿数: 21
投稿日時: 2002-11-22 11:29
こんにちわ。提督@私も同じパターンではまりました。です

私もHTMLからマネージドコードを呼び出すロジックを書いたことがあるのですが、
同じエラーで随分悩みました。

下記のスレッドは既にCheck済みでしょうか?
(Jittaさん、その節は有難うございました)
(おかげさまで、印刷ちゃんとできるようになりました。)
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=2362&forum=7&5

で、そのエラーが出てるときは大抵、Objectタグで指定するClassIDが間違ってる
事が多かったです。

以上

kaseda
会議室デビュー日: 2002/08/07
投稿数: 19
投稿日時: 2002-11-22 11:46
早速のレスありがとうございます。

引用:

下記のスレッドは既にCheck済みでしょうか?
(Jittaさん、その節は有難うございました)
(おかげさまで、印刷ちゃんとできるようになりました。)
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=2362&forum=7&5

で、そのエラーが出てるときは大抵、Objectタグで指定するClassIDが間違ってる
事が多かったです。


このスレッドみさせて頂きました。
現在HTMLファイルとDLLは同じパスに配置してあり、classid="http:Controls.dll#DragListBox"としているのでパスはあっているのかなと思います。
OBJECTタグで指定する、widthやheightの有無は影響ありますでしょうか?
和哉提督
常連さん
会議室デビュー日: 2002/07/17
投稿数: 21
投稿日時: 2002-11-22 13:26
引用:

このスレッドみさせて頂きました。
現在HTMLファイルとDLLは同じパスに配置してあり、classid="http:Controls.dll#DragListBox"としているのでパスはあっているのかなと思います。
OBJECTタグで指定する、widthやheightの有無は影響ありますでしょうか?



今、kasedaさんが作られているのは、おそらく目に見えるコントロールだと思いますので、widthやheightは非常に重要かと思います。
私が作っていたのは、裏でこっそり動く印刷Pgだったので、width,heightともに0と
して、非表示にしてあります。

結構めんどくさいですが、いろいろ出来そうで便利ですのでがんばって実装してくださいね(笑)

では。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2002-11-22 13:44
引用:

kasedaさんの書き込み (2002-11-22 11:46) より:

現在HTMLファイルとDLLは同じパスに配置してあり、classid="http:Controls.dll#DragListBox"としているのでパスはあっているのかなと思います。


 DragListBoxに対するネームスペースが指定されていないと思いますが、いかがでしょうか?
kaseda
会議室デビュー日: 2002/08/07
投稿数: 19
投稿日時: 2002-11-22 15:55
レスありがとうございます。
引用:

今、kasedaさんが作られているのは、おそらく目に見えるコントロールだと思いますので、widthやheightは非常に重要かと思います。


width="300" height="100"で設定してみましたが、領域が取られるだけで中にListBoxは
表示されませんでした。

引用:

DragListBoxに対するネームスペースが指定されていないと思いますが、いかがでしょうか?


サンプルのソースでは、Controls.csでネームスペースの定義はありませんでしたので、
そのまま#DragListBoxとしていました。
試しに、Controls.csにnamespace Sample.controls と定義しアセンブリを再作成、
OBJECTタグで、classid="http:Controls.dll#Sample.Controls.DragListBox"としてみましたが結果は同じでした。

Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2002-11-22 16:23
引用:

kasedaさんの書き込み (2002-11-22 15:55) より:
サンプルのソースでは、Controls.csでネームスペースの定義はありませんでしたので、
そのまま#DragListBoxとしていました。
試しに、Controls.csにnamespace Sample.controls と定義しアセンブリを再作成、
OBJECTタグで、classid="http:Controls.dll#Sample.Controls.DragListBox"としてみましたが結果は同じでした。


 クラスエクスプローラでどのように表示されていますか?
 ソース中でネームスペースを指定していないなら、プロジェクト名がネームスペースになります。ソース中のネームスペースの指定を外し、classid="…#プロジェクト名.DragListBox"でやってみてください。
kaseda
会議室デビュー日: 2002/08/07
投稿数: 19
投稿日時: 2002-11-22 17:50
引用:

Jittaさんの書き込み (2002-11-22 16:23) より:
クラスエクスプローラでどのように表示されていますか?


すみません。当方VS.NETを使用しておりません。
コードの修正&作成はテキストエディタで行っています。
作成したアセンブリファイルのネームスペース等は"IL DASM"を使って確認しました。
現在以下のようになっております。
Controls.dll
|
+Sample.Controls
+DragListBox
+DragItem



スキルアップ/キャリアアップ(JOB@IT)