• ベストアンサー

ActiveX と .Net対応コンポーネントの差

C#で.NET対応のアプリを開発する時に、同じ機能を実現してくれる、OCX と .Netのコンポーネットがあったりします。 例えば、VSFlexGrid の ActiveX版 と .NET 版があります。 一般論として、C#でActiveXが使えるのに、.NET版を使う理由は何でしょうか。OCX版を使ったら不都合はあるのでしょうか。

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

不都合というか パフォーマンスが .NET版に比べて悪い可能性があります ActiveX版ですとAxHostによるラッパーが加わってしまいます .NET版ならこのような変換をしなくても直接アセンブリにアクセスできます

bonchin
質問者

お礼

ご回答ありがとうございました。

関連するQ&A

  • .NETでActiveXコントロールを使う

    開発系初心者です。 ある事情にて.NETの環境でActiveXコントロールの使用を行うことになりました。 そこで、下記アドレスの方の方法を参考にさせていただいたのですが、 ラッパークラスライブラリの生成が行えません。 .NET環境でActiveXコントロールの実装を行うことに参考にさせていただいたサイト http://blogs.wankuma.com/ganfield/archive/2007/03/13/66556.aspx サイトに記載されているActiveXの登録には、下記のアドレスの方のを参考に、 regsvr32で登録済みとなっています。 ActiveX登録に参考にさせていただいたサイト http://www3.ocn.ne.jp/~tonko/HP13_02.htm 二つのラッパーライブラリが生成できないというのは、コマンドプロンプトの作業時、 AxImp c:\WINDOWS\system32\msdxm.ocx と、入力しても AxImp エラー: タイプ ライブラリ/DLL の読み込みエラーです。(HRESULTからの例外:0x80029C4A (TYPE_E_CANTLOADLIBRARY)) と出てしまい、ラッパーライブラリが生成できません。上記サイト以外に、何か準備する必要があるのでしょうか? なお、開発環境は、 OS     :Windows 7 開発環境 :Visual Studio 2010 です。プログラミング言語ではC#の使用を予定しています。 どなたかご回答をお願い致します。

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

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

  • .NETとActiveXの関係

    c++からブラウザ操作を行うプログラムを作成しています。 その際、.NET版 と ActiveX版を作りましょうという話になったのですが、 .NET と ActiveX の関係がわからず、教えて頂きたいです。 ActiveXは、 ネット関連のコンポーネントや技術と捉えています。 例えば、 WebBrowser コントロール (SHDocVw.dll)も ActiveXに属するという認識です。 対して、.NETは、 端的に言えばマイクロソフトが開発したアプリケーション開発、実行環境とのことですが、 WebBrowser コントロール (SHDocVw.dll)と同じことをしようと思ったら、 System.Windows.Forms.WebBrowser を使ったり、 SHDocVw.dll をimport することになるとおもいます (後者は工夫が必要そうですが) なので、 .NET は、ActiveXを包含しているという風に認識していたのです。 ActiveX コントロールは、.NETのControlクラスを継承しているはずがないので、 Windowsのポインタ(EnvDTE::Windows)ではなく IEオブジェクト用のポインタ( IShellWindowsPtr、 IWebBrowser2Ptr)を使う必要があるものの、 この認識だと、 「.NET版 を作成したら ActiveX版を作っているのと同じ」となので 冒頭の「.NET版 と ActiveX版を作りましょう」と矛盾し、 .NET が ActiveX を包含しているというわけではない?? .NET と ActiveX の関係ってどういう関係?? となり、正しい認識を教えて頂きたいのです。 .

  • Activexコントロール(ocx)のダウンロード。

    現在ActiveXコントロールのアプリを作成(修正) しています。 開発環境 OS: XP(SP2) visualStudio6.0(SP5) 実行環境 OS: XP(SP2) デバッグ環境では正常に動作するのですが、 OCXファイルを作成して、 ブラウザ上で実行するとどうもうまくいきません。 (修正前のアプリは正常にブラウザ上で動作する)  現状としましては ・IEのセキュリティはActiveXのダウンロードを許可。 ・バージョンは修正前のリビジョンに+1を設定。 ・ダウンロードするOCXファイルは    C:\WINDOWS\Downloaded Program Filesのフォルダに ダウンロードされてくるがインストールはされていない(状態が不明となる) ・clsIDをリナンバーしても動かない。 ・修正前の状態から再度OCXファイルを作成するだけで  も動かない。 ・OCXをコンポーネントとして登録できない ・開発環境、実行環境をwin2000にしても  同様の結果です 自分で思いつく事はすべてやってみたのですが、 うまくいきません。 なにかアドバイスでも何でもよいので いただけないでしょうか?

  • ASP.NetでのActiveX

    ASP.Net開発に関してご質問があります。 現在aspxにActiveXを貼り付け、そのパラメータをJavaScriptでいじっています。 そのActiveXをサーバコントロールとして扱うことは可能なのでしょうか? 以下のようにHtmlに記述し、aspx側にそのコントロールを足してみたのですが。。 <OBJECT id="test" codeBase="AAAAAAAAAA" classid="clsid:0555558F-7D5F-11D2-A1C7-006008E3229E" VIEWASTEXT runat="server"> ビルドはできるのですが、以下のようなエラーがでてしまいます。 『解析エラー メッセージ: GUID には、ハイフンを 4 つ含む 32 桁の数字 (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) を含んでいなければなりません。』 見当違いなことをお聞きしているかもしれませんが、よろしくお願いいたします。

  • ActiveXコントロールを使用できる帳票アプリは?

    帳票出力アプリで悩んでいます。 たくさんの外字を画面表示するために、G2000というパッケージを使用しました。帳票を出力するにあたり、調べていましたが、当方が使用している「クリスタルレポート」には、ActiveXコントロールを配置することができず、外字を出力することができません。 (G2000は、ActiveXコントロールとして外字を出力する機能をサポートしています) クリスタルレポートにこだわりませんが、帳票アプリでActiveXコントロールを使用できる製品はありませんか? ※単独アプリとします。Microsoft Accessで実現できることはわかっているのですが、帳票アプリとして導入しないといけないので、よろしくお願いします。

  • regsvr32でActiveX登録を行ったocx

    regsvr32 で ActiveX登録を行った ocx がリソースエデイタ「のActiveX コントロールの挿入」で使用できなくて困ってます。 開発環境は VisualStudio2005 の VC++ で、Version は 8.0.50727.867 になります。 レジストリエディタで確認すると以下のレジストリキーで登録されていることを確認できるのですが。 HKEY_CLASSES_ROOT\CLSID\{9BD4A8F2-56BA-11D3-915D-00C04F797034} 『ActiveX コントロール テスト コンテナ』の「コントロールの登録」ダイアログで表示される一覧中には含まれていません。 また、「コントロールの登録」ダイアログで「登録」ボタンを押しても一覧に追加も行われません なんとなくセキュリティっぽい事までは分かるのですが、どなたかヒントをお持ちでしょうか?

  • MFCでActiveXの作り方

    VS6(SP5)+Win2K(SP4)で開発しています。 MFCでActiveX(OCX)までは、作成できたのですが、 それを、どうやってWebページ上で動かすかが分りません。 Webページとかでいろいろ探してみたのですが、下記のようなHTMLでテストをしましたが、ダウンロードがうまく行かず、「Download ProgramFiles」フォルダで不明となってしまいます。 どこかが、間違っているのだと思うのですが、どこでしょうか? HTML------------------- <html> <body> <p>test</p> <OBJECT codeBase="./MMOutput.cab#version=1.0.0.1" id=PSDWC1 height=357 classid="clsid:626F7510_1B6A_4F45_A8F8_56D4F9972DCE" width=343> </OBJECT> </body> </html> inf-------------------- ; Sample Inf file [Version] signature="$CHICAGOS" ;AdvancedINF=2.0 [Add.Code] MMOutput.ocx=MMOutput.ocx [MMOutput.ocx] file-win32-x86=thiscab CLSID={F6FE5E43-B7A5-48D9-9E5F-1014D9C560D6} FileVersion=1.0.0.1 ;DestDir=11 ;RegisterServer=no

  • VB6でActiveXを作成

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

  • VB6かVB.netか

    初歩的なことですが教えて下さい。 現在、VB6(SP5)で開発したアプリ(製品)があります。これはJet(Access2000)を使用したDBや自作のActiveXを使用して構築されております。今度この製品の改良を行う予定で、新規開発(但し使えるものは流用したい)を考えています。ここで使用する開発言語をVB6かVB.netのどちらにするべきか悩んでいます。世の中の流れが.netに進んでいる為.netで開発した方が良いとも思いますし、その反面VB6で開発したアプリが今後発売されるOSなどの環境で使用できなくならないのであれば使い慣れたVB6にしようかなとも思っていいます。何か良きアドバイスなどあれば教えて下さい。

専門家に質問してみよう