• ベストアンサー

VB2005でActiveXを作成したいです

はじめまして。 VB2005でActiveXのCOMを作成したいですが、 新規作成プロジェクトに ActiveXコンポーネントの項目がありません。 どのようにして作成するのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • oboroxx
  • ベストアンサー率40% (317/792)
回答No.3

参考URLを見てみてください。 COMにするには、属性やプロジェクトのプロパティを設定するなどいくつかやるべきことがあるようです。

参考URL:
http://ameblo.jp/otsubone-pg/entry-10181634523.html
mindeyed
質問者

補足

コメント有難うございます。 つまりOCXは.net対応しておらず、 COMとして形式変換しないといけないんですね。。。 なんともやりづらいです。 それならダウングレードのVB6.0で開発した方が早そうですよ・・・

その他の回答 (2)

回答No.2

思いつく限りのチェック項目を。 COMで公開するクラスのCOM参照とCOMクラスがTrueになっているか、またプロジェクトの設定で「アプリケーション」グループの「アセンブリ情報」を開き、「アセンブリをCOM参照可能にする」にチェックが入っているか確認してください。 .NET Framework 2.0用のRegAsm.exeを使っていますか? C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe RegAsmは各.NETバージョンごとにありますので、異なるバージョンでは登録が失敗します。 Express Editionの場合、タイプライブラリの不足でエラーが発生することがあるようです。これは#1の参照URLを。 あと、エラーは日本語で表示されるはずなのですが日本語ランゲージパックでインストールされているでしょうか?(これは関係ないかも…)

mindeyed
質問者

補足

あの後、色々行いOleViewにて登録を確認しました。 しかし、実際に登録したDLLをVC++で使用してみたところ、 DLL読込時に失敗してしまいます。 VBでOCXのようなGUI要素をもったACTIVEXを作成したいのですが、 この場合、上記の方法で合っているのでしょうか?

回答No.1

プロジェクト自体は「クラスライブラリ」で作成し「COMクラス」を追加してください。 COM公開に必要なGUID等がソースコードに書き込まれています。 あとは普通にクラスを作ればOKです。(ご存知かと思いますが、COMではオーバーロードや引数付きコンストラクタが使えないのでご注意を) .NETで作成したCOMオブジェクトは当然.NET Frameworkが必要になります。また、レジストリへの登録もRegsvr32.exeではなくRegAsm.exeを使います。 COMの登録はこのへんが参考になるかと。 http://okwave.jp/qa4260192.html

mindeyed
質問者

補足

お返事有難うございます。 無事DLLを作成出来ましたが、 RegAsm.exeで 以下のエラーが発生します。 「RegAsm error:Failed to load 'xxx.dll' because it is not a valid. NET assembly」 .NETでコンパイルしたのですが、ロード出来ないようです。。。 何かよい解決策はございますか?

関連するQ&A

  • VB6でActiveXを作成

    こんにちは、AxtiveXを初めて作成することになり、 いろいろ調べた結果 工数や自分の能力(C++未経験)からVB6にて作成しようかと考えています。 .NET(C#)で作れれば一番嬉しいのですが、ActiveXのようなものができるだけで、いろいろと問題がありそうなので断念しました。 (レジストリの登録など?) ActiveXの配布はcabファイルなるもので、行うようですが VB6はC++ とは違ってランタイムがいると思います。ランタイムも一緒に配布することはできるのでしょうか?(自働インストールさせることができるのでしょうか?) 前提として、「何の準備もなくサイトにアクセスして、動作するもの(ActiveXのインストールダイアログなどは別として)」を作成しなければいけないため、 あらかじめ、ランタイムをインストールしてくださいということであれば、VB6での開発は断念せざるおえません。 ご回答、参考サイトなどありましたら、よろしくお願いします。

  • VBで作成したActiveXの実行について

    HTML上でOBJECTタグを使って、OCXなどを実行できるというようなことはネットで見つけることができたのですが、そのOCXがC言語で作られたものだったり、MediaPlayerみたいなものだったりするので、よくわかりません。知りたいことは・・・ 1.VBで作成したActiveXをHTMLで実行できますか? 2.VBで作成したActiveXをHTMLで実行したことがありますか? 3.HTMLで実行するActiveXを作成する場合、DLLですかOCXですか? 4.VBで作成したActiveXを使用する場合、特に気をつけることがありましたら教えて下さい。 以上、よろしくお願い致します。

  • VB6で作成したOCX(ActiveX)について

    お世話になります。 下記項目に対しての知識が無くて困っております。 VB6.0で作成したOCX(ActiveX)についてですが、VC++やVB以外のプログラム言語で使用できるのでしょうか? 今回はDelphiでの使用を検討しておりますが、環境が無い為試すことができません。 ご存知の方がいたら、ご教授お願いいたします。

  • ActiveX → VB を起動するとCreateObjectできない。

    初めまして。 2003Server+IIS6.0の環境でASP内のActiveXからShell関数でvbのexeを実行させる処理を作成しております。 サーバーから直接exeを実行させると正常に動くのですが、Web上からasp→ActiveX→exeを起動させるとテキストに書き込む処理はできるのですが、「CreateObject」文で「ActiveX コンポーネントはオブジェクトを作成できません」というエラーが返ります。 VB内でなぜ「CreateObject」が出来ないのかご存知の方はいますでしょうか。 宜しくお願いいたします。

  • ActiveXを作る

    独自にActiveXコンポーネントを作りたいのですが、VBでの作成手順を詳しく説明してくれているホームページをご存知の方いらっしゃいましたら、教えて下さい。

  • ActiveXコントロールを作成してから登録の削除は?

    VBでActiveXコントロールを初めて作成したのですが、 間違えて同じ名前のActiveXコントロール作成してしまいました。 で、コンポーネントでのActiveXコントロール追加に同じ名前のコントロール が2登録されてしまいました。 この登録されたコントロールを2つとも削除したいのですが。 拡張子「*.ocx」のファイルを削除しても、 コンポーネントのコントロールに登録したActiveXコントロール名が残ったままです。 どうすれば、この登録を削除できるのでしょうか? よろしくお願いします。m(__)m 補足: 標準.EXEファイルなどでVBを立ち上げて、 ツールボックスの上で右クリック→コンポーネント→コントロールタブ で、表示されるコントロール名に同じコントロール名が登録されている状態です。 この登録名を両方とも削除したいのですが。

  • [VB5] RDO:エラー'429' ActiveX コンポーネントはオブジェクトを作成できません

    Excel97のVBAを使って、RDOでSQLserverに接続しようとすると 「ActiveX コンポーネントはオブジェクトを作成できません」 というエラーがでます。 VB5.0を再セットアップするとよいと以下のURLにはのっていますが http://www.microsoft.com/japan/support/kb/articles/J043/1/96.asp VBがインストールされていないマシンでは、どうしたらよいのでしょうか? RDOのバージョンは2.0です。

  • ActiveXコンポーネントのデザイン部分について

    VB6でOCXを作成しましたが、デザイン(表示)部分でわからないことがあります。 作成したOCXを別のプログラムでコンポーネント参照した際に、 通常タイマーならタイマーの画像が、ボタンならボタン形状のツールバーが表示されるのですが、デフォルト画像(表現しにくいのですが青のタスクバーに4つのボタンと鉛筆マーク)が表示されます。 これをオリジナルデザインにすることは可能でしょうか? また、使用する際にタイマーイベントのようにデザイン時にはコンポーネントが見えていて、実行時には見えなくする方法が知りたいです。今は実行させると、作成したフォームが丸見え状態です。 あとVB6で作成したコンポーネントはVisualStudioの他のバージョン(2003や2005)でも使えるのでしょうか? 最近ActiveXコンポーネントの作成がわかり喜んでいたのですが、つめが甘いのかデザイン部でつまずいています。ActiveXコンポーネントは古い技術でしょうか。 ActiveXコンポーネントについて詳しく書かれている書籍はありますか? できればVB6を希望しますが、VC6でも構いません。

  • VBのコンポーネントについて

    Visual Basicのコンポーネントの『Activex Data Object 2.5 Library』を使いたいのですが・・・ないのです。VersionはVB6.0 Enterpriseを使ってます。学校で使った時は(バージョンは違うと思うですが。多分Professionalだとおもうのですが)コンポーネントの項目にありました。Versionがかわると機能もつかわるのでしょうか?『Activex Data Object 2.5 Library』を使いたい場合どうすればいいのでしょうか?

  • VB.NETでActiveX(OCXファイル)作成

    VB6のプロジェクトファイルで作成したOCXファイルがございます。これをVB.NETに移行したいの ですが、アップグレードウィザードを使用しても同様のOCXファイルは作成できますか? また、プロジェクトを新規作成する方法を教えていただけませんか? 宜しくお願い致します。