- - PR -
ActiveXの関数を呼び出せない
1
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-12-01 15:49
こんにちわ、すももです。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=35198&forum=7&7 こういう経緯からActiveXに興味を持ったので いろいろやって見ようとActiveXの作成をして見ようと試みました。 とりあえず、最初はシンプルなものを、ということで ブラウザのボタンをクリックするとエディタを開く というイベントを作って見ようと思いました。 しかし上手くいきません。 以下がその手順です。 1.VisualStudio2005でメニューの ファイル>新規作成>プロジェクト で新しいプロジェクトダイアログが起動 Visual C#>クラスライブラリ を選択し、プロジェクト名 SAMPLE1 で[OK]ボタンをクリック ソリューションエクスプローラーに Properties、参照設定、Class1.c ができる。 2.Class1.csをSAMPLE1.csにリネームし次のように書き換えて全てを保存
3.Propertiesを開き アプリケーション > アセンブリ情報 で アセンブリをCOM参照可能にする にチェックを入れて[OK]し全てを保存 ビルド > 構成 を Release にして COM相互運用機能の登録 にチェックをいれて全てを保存 4.メニューの ビルド > ソリューションのビルド を行うと成功し、 ワークフォルダの bin\Release の下に SAMPLE1.dll、SAMPLE1.pdb、SAMPLE1.tlb が作成されるのを確認 5.SAMPLE1.INFファイルを作成
6.SAMPLE1.CABを作成
7.作成したSAMPLE1.CABをウェブザーバに置いて同フォルダ内に SAMPLE1.HTMLを作成
8. http://--/SAMPLE1.HTML をIEで実行すると次のエラーが出ます 「エラー: オブジェクトがサポートしていないプロパティまたはメソッドです。: 'SAMPLE1.DoExec' エラーから判断するに、DoExecが見えていないとのことです。 いろいろ調べたのですが、手順のどこが悪かったのか どうにも判明できません。 お手数ですが、どの手順に抜かりがあるのかご指摘いただけないでしょうか。 よろしくお願いします。 なお、一番参考にしたのは http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=33069&forum=7&2 のページです。 | ||||||||||||||||
|
投稿日時: 2006-12-01 23:49
の記述は、VC++(アンマネージド)/VB6 等で作成された「真の ActiveX コントロール」を登録する場合の記述です。 C# や VB.NET のような、.NET 系のプログラミング言語で作成された .NET の COM 連携機能を利用した、言わば「インチキくさい ActiveX コントロール」は、この記述では登録できません。 「インチキくさい ActiveX コントロール」は、.NET Framework SDK に付属の Regasm.exe ツールを使用して登録します。 ただし、Regasm.exe は単独での再配布を許可されていないので、「インチキくさい ActiveX コントロール」は .CAB ファイルによる配布に適していません。 _________________ // 渋木宏明 (Hiroaki SHIBUKI) // http://hidori.jp/ // Microsoft MVP for Visual C# // // @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/ | ||||||||||||||||
|
投稿日時: 2006-12-04 11:00
あああ なんとっ
tp://www.users.gr.jp/blogs/hidori/archive/2004/11/17/6131.aspx を書いたひどりさんなのですね 感激です ということは、.NET系プログラム言語で作成したものは .NET Frameworkを通してインストールされるべきなのですか。 .NET Frameworkを利用しないのであれば VC++やVB6を使って作るのがいいのですか。 奥が深いです。 勉強しなおしてまいります。 | ||||||||||||||||
|
投稿日時: 2006-12-04 18:12
(経緯や背景をすべて省略して)簡単に言えばそうなります。
ということになりますが、「今更」感もあるので、.NET 系のプログラミング言語で作ったユーザコントロール入りのアセンブリを「ActiveX コントロール的」に使う方法もあります。 http://www.gotdotnet.com/japan/team/windowsforms/iesourcing.aspx [ メッセージ編集済み 編集者: 渋木宏明(ひどり) 編集日時 2006-12-05 06:40 ] |
1