C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[12]: GUIでActiveXコントロールを作成する方法


(過去ログ 73 を表示中)

[トピック内 18 記事 (1 - 18 表示)]  << 0 >>

■42505 / inTopicNo.1)  GUIでActiveXコントロールを作成する方法
  
□投稿者/ ジェット (31回)-(2009/10/16(Fri) 15:39:33)

分類:[その他の言語] 

いつもお世話になっております。

ActiveXコントロールを作成したいと思っております。
そこでどのような方法があるだろうかと
調べております。

VB6.0で作成できたようにGUIで作りたいのですが、
どのような言語、開発環境で作ることができるでしょうか?

私なりに調べてみたところ、
Delphiで作ることができそうでしたが、
価格が10万円程度するようなので、どうしようかと思っております。

VB6.0を選択しない理由は
VB6.0のランタイムのサポートが切れる可能性があるので、
選択しないことにしました。

VB6.0、Delphi以外でActiveXコントロールを
GUIで作成する方法がございましたら、教えてください。

以上、よろしくお願いいたします。

引用返信 編集キー/
■42509 / inTopicNo.2)  Re[1]: GUIでActiveXコントロールを作成する方法
□投稿者/ オショウ (339回)-(2009/10/16(Fri) 16:29:54)
No42505 (ジェット さん) に返信
> ActiveXコントロールを作成したいと思っております。
> そこでどのような方法があるだろうかと
> 調べております。

  う〜ん・・・
  GUIの意味がいまいち解りませんが・・・

  VC++ の、MFCで作成できますが、購入費用が高価と言う
  ことなら、ExpressEditionでテンプレートに無くても、
  自前で作れたと思います。

※ VC6で作成したMFC使ったActiveX OCXのプロジェクトを
  VisualStudio2005/2008でアップグレードさせてリコン
  パイルしてみましたが、問題なくできてしまいました。
  ただ、ProfessionalEditionでです。

  動作は未確認です。

以上。参考まで
引用返信 編集キー/
■42510 / inTopicNo.3)  Re[2]: GUIでActiveXコントロールを作成する方法
□投稿者/ ジェット (32回)-(2009/10/16(Fri) 16:42:20)
2009/10/16(Fri) 16:42:56 編集(投稿者)

No42509 (オショウ さん) に返信
>   う〜ん・・・
>   GUIの意味がいまいち解りませんが・・・
>
>   VC++ の、MFCで作成できますが、購入費用が高価と言う
>   ことなら、ExpressEditionでテンプレートに無くても、
>   自前で作れたと思います。
>
> ※ VC6で作成したMFC使ったActiveX OCXのプロジェクトを
>   VisualStudio2005/2008でアップグレードさせてリコン
>   パイルしてみましたが、問題なくできてしまいました。
>   ただ、ProfessionalEditionでです。
>
>   動作は未確認です。
>
> 以上。参考まで

オショウ さん

ご回答ありがとうございます。
説明が分かりづらくてすいません。

GUIというのは、Windowsフォームアプリケーションを作成するときのように
ButtonやTextBoxをドラッグ&ドロップで張り付けたいという意味です。

C++のMFCでは、そのようには開発できないように感じました。
(間違っているようでしたら、申し訳ございません。ご指摘ください。)

なので、その他の言語で開発したいと思ったのです。
C++のMFCを勉強するのも1つの手だと思いますが、
その他の方法はないだろうかと思い、調査しております。

もしご存知でしたら、ご教示ください。
ドラッグ&ドロップでできなかったとしても、他の言語で開発できるようであれば、
教えて頂けたら、とても勉強になります。

以上、よろしくお願いいたします。
引用返信 編集キー/
■42511 / inTopicNo.4)  Re[3]: GUIでActiveXコントロールを作成する方法
□投稿者/ オショウ (340回)-(2009/10/16(Fri) 17:06:08)
No42510 (ジェット さん) に返信
> GUIというのは、Windowsフォームアプリケーションを作成するときのように
> ButtonやTextBoxをドラッグ&ドロップで張り付けたいという意味です。

  VC++では、そのような方法はできませんネ!

  そういう意味でのGUIが可能なC++コンパイラは・・・
  C++ Builder とか、VisualAge C++ とか?

  使ったこと無いので、お調べ下さい。

> ドラッグ&ドロップでできなかったとしても、他の言語で開発できるようであれば、
> 教えて頂けたら、とても勉強になります。

  う〜ん・・・
  もう.NETに基本的に移行しているので、今更ActiveX と言うのは・・・

  あったとしても現在のバージョンで可能かどうか・・・
  入手不能な場合、どうするんですか?

以上。
引用返信 編集キー/
■42512 / inTopicNo.5)  Re[4]: GUIでActiveXコントロールを作成する方法
□投稿者/ ジェット (33回)-(2009/10/16(Fri) 17:46:20)
>   そういう意味でのGUIが可能なC++コンパイラは・・・
>   C++ Builder とか、VisualAge C++ とか?

ありがとうございます。
C++に関しては、詳しくなかったので、
参考になりました。


>   う〜ん・・・
>   もう.NETに基本的に移行しているので、今更ActiveX と言うのは・・・
>
>   あったとしても現在のバージョンで可能かどうか・・・
>   入手不能な場合、どうするんですか?

方法がなければDelphiで作ろうと思っています。
トライアル版をインストールして、試してみましたが、
ActiveXを作れそうでしたので・・・。
(トライアル版なので、無効化されていて使えませんでしたが・・・)

Delphi以外の開発環境がもしあれば、
選択肢の1つにしたいと思い、質問させて頂いております。

よろしくお願いいたします。

引用返信 編集キー/
■42515 / inTopicNo.6)  Re[4]: GUIでActiveXコントロールを作成する方法
□投稿者/ 渋木宏明(ひどり) (1235回)-(2009/10/16(Fri) 18:51:39)
渋木宏明(ひどり) さんの Web サイト
>>GUIというのは、Windowsフォームアプリケーションを作成するときのように
>>ButtonやTextBoxをドラッグ&ドロップで張り付けたいという意味です。
>
>   VC++では、そのような方法はできませんネ!

標準コントロールを GUI で配置できればいいだけなら、VC++ でも可能です。

よくある手は

・ダイアログテンプレートを作成してそこに GUI でコントロールを配置
・そのダイアログテンプレートを ActiveX コントロールの子ウィンドウとして貼り付ける

というものです。


ただし、VC++ Express には MFC が含まれていないので、VC++ を選択するなら Express ではNGです。

引用返信 編集キー/
■42546 / inTopicNo.7)  Re[5]: GUIでActiveXコントロールを作成する方法
□投稿者/ ジェット (34回)-(2009/10/17(Sat) 15:01:26)
No42515 (渋木宏明(ひどり) さん) に返信
> >>GUIというのは、Windowsフォームアプリケーションを作成するときのように
> >>ButtonやTextBoxをドラッグ&ドロップで張り付けたいという意味です。
>>
>>  VC++では、そのような方法はできませんネ!
>
> 標準コントロールを GUI で配置できればいいだけなら、VC++ でも可能です。
>
> よくある手は
>
> ・ダイアログテンプレートを作成してそこに GUI でコントロールを配置
> ・そのダイアログテンプレートを ActiveX コントロールの子ウィンドウとして貼り付ける
>
> というものです。
>
>
> ただし、VC++ Express には MFC が含まれていないので、VC++ を選択するなら Express ではNGです。
>

渋木宏明(ひどり) さん
ご回答ありがとうございます。

VC++に詳しくないので、完全には理解できませんでしたが、
ダイアログテンプレートという技術を使えば、
GUIでコントロールを配置できるのですね。
とても参考になりました。

C++かDelphiで作る方向で検討しようと思います。
ご回答ありがとうございました。

解決済み
引用返信 編集キー/
■42556 / inTopicNo.8)  Re[6]: GUIでActiveXコントロールを作成する方法
□投稿者/ Atata!! (3回)-(2009/10/18(Sun) 00:20:25)
Atata!!です。

適切にレジストリを構成すれば、VB.NETやC#でもActiveXコントロールの開発は可能です。

System.Windows.Forms.Controlクラスには、ActiveXコントロールとして動作するための機能が実装されています。
そのため、プロジェクトをWindowsコントロールライブラリとして作成し、相互運用機能に登録できるようにした後、
レジストリを構成するコードを書き足すだけでActiveXコントロールとして動作します。

必要となるキーは対象とするActiveXコントロールのコンテナにもよりますが、大体以下のキーを追加すれば問題ないはずです。
・Control
・TypeLib
・Version

解決済み
引用返信 編集キー/
■42560 / inTopicNo.9)  Re[7]: GUIでActiveXコントロールを作成する方法
□投稿者/ Atata!! (4回)-(2009/10/18(Sun) 05:13:47)
検索すると10日ほど前にも似たような話題がありますね。

http://bbs.wankuma.com/index.cgi?mode=al2&namber=42123
記事中の参考URLに私の回答と同じ内容がありますね。

解決済み
引用返信 編集キー/
■42597 / inTopicNo.10)  Re[7]: GUIでActiveXコントロールを作成する方法
□投稿者/ ジェット (35回)-(2009/10/19(Mon) 10:23:10)
No42556 (Atata!! さん) に返信
> Atata!!です。
>
> 適切にレジストリを構成すれば、VB.NETやC#でもActiveXコントロールの開発は可能です。
>
> System.Windows.Forms.Controlクラスには、ActiveXコントロールとして動作するための機能が実装されています。
> そのため、プロジェクトをWindowsコントロールライブラリとして作成し、相互運用機能に登録できるようにした後、
> レジストリを構成するコードを書き足すだけでActiveXコントロールとして動作します。
>
> 必要となるキーは対象とするActiveXコントロールのコンテナにもよりますが、大体以下のキーを追加すれば問題ないはずです。
> ・Control
> ・TypeLib
> ・Version
>

Atata!!さん

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

VB.NETやC#でもActiveXコントロールを作成できるということで、
とても良い情報を教えて頂くことができました。
ありがとうございます。

> 必要となるキーは対象とするActiveXコントロールのコンテナにもよりますが、大体以下のキーを追加すれば問題ないはずです。
> ・Control
> ・TypeLib
> ・Version

これはどのようなことをすれば良いのでしょうか?
Visual Studioを起動して、「Windows コントロール ライブラリ」を選択して、
コントロールを作りますよね?
そのあとで、キーというのを追加するのでしょうか?

>相互運用機能に登録できるように・・・
というのは、プロジェクトのプロパティから
[ビルド]⇒[COMの相互運用機能の登録]に対してチェックを入れるのだなと理解できました。

私の操作手順はC#2005でやりましたが、
C#2008もありますので、どちらでご説明頂いても構いません。

キーを追加するというのは、ソースに何か書くのでしょうか?

もう少し詳しくご説明頂けませんか?
ぜひよろしくお願いいたします。
引用返信 編集キー/
■42608 / inTopicNo.11)  Re[8]: GUIでActiveXコントロールを作成する方法
□投稿者/ 渋木宏明(ひどり) (1236回)-(2009/10/19(Mon) 12:34:11)
渋木宏明(ひどり) さんの Web サイト
> VB.NETやC#でもActiveXコントロールを作成できるということで、
> とても良い情報を教えて頂くことができました。

どういう形態での配布を考えていますか?

配布形態によっては、.NET による ActiveX コントロールはあまりいい選択ではない可能性があります。

例えば、.NET Framework が導入されていない端末に、.NET による ActiveX コントロールを object タグで配布するのは無理があります。

引用返信 編集キー/
■42612 / inTopicNo.12)  Re[9]: GUIでActiveXコントロールを作成する方法
□投稿者/ ジェット (36回)-(2009/10/19(Mon) 13:03:39)
No42608 (渋木宏明(ひどり) さん) に返信
>>VB.NETやC#でもActiveXコントロールを作成できるということで、
>>とても良い情報を教えて頂くことができました。
>
> どういう形態での配布を考えていますか?
>
> 配布形態によっては、.NET による ActiveX コントロールはあまりいい選択ではない可能性があります。
>
> 例えば、.NET Framework が導入されていない端末に、.NET による ActiveX コントロールを object タグで配布するのは無理があります。
>

渋木宏明(ひどり) さん

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

配布は、イントラネットで使用するActiveXコントロールですので、
すべての端末に.NET Frameworkが導入されています。

既に全端末に.NET Framework3.5SP1が導入されていますので、
この点は問題ないと思っております。

今後社外に公開する予定もございません。
新たにDelphiの環境を購入する費用がありませんので、
VB.NETやC#で開発できると、とても助かります。
引用返信 編集キー/
■42657 / inTopicNo.13)  Re[10]: GUIでActiveXコントロールを作成する方法
□投稿者/ Atata!! (5回)-(2009/10/19(Mon) 22:50:08)
説明がめんどくさいのでサンプルソースを貼り付けておきます。
http://www5.plala.or.jp/atata/download/axcontrol.net.lzh

VB6での動作イメージ
http://www5.plala.or.jp/atata/download/vb6.png

レジストリの構成に関してはサンプルソースを解析してください。
参考となるMSDNのURLは以下のとおりです。
Control http://msdn.microsoft.com/en-us/library/ms680056(VS.85).aspx
MiscStatus http://msdn.microsoft.com/en-us/library/ms683733(VS.85).aspx
Version http://msdn.microsoft.com/en-us/library/ms686568(VS.85).aspx

TypeLibキーはなぜかMSDNにはありません。


ただ、渋木さんの言われるとおり配布には相当苦労することになります。

サンプルはREGASMユーティリティで登録することを想定していますが、
セットアッププロジェクトにすると動作しない問題がありました。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=29781&forum=7

私もこの問題を解決できていません。VS2005以降では試したことがありません。


また、相互運用する上でアセンブリの配置をどのようにするかも検討しておいた方がいいです。
・アセンブリをEXEと同じフォルダに配置
・GACに登録
・REGASM時にCODEBASEを指定する(VSのCOM相互運用機能の登録と同じ動作)
の3パターンぐらいがあると思います。
引用返信 編集キー/
■42659 / inTopicNo.14)  Re[11]: GUIでActiveXコントロールを作成する方法
□投稿者/ Azulean (472回)-(2009/10/19(Mon) 23:24:32)
.NET 系で ActiveX コントロールを作った場合に気になる点に他があるとすれば、Office で使う場合と、異なるバージョンの .NET Framework アプリケーションから利用する場合ですね。

前者は .NET Framework バージョンを固定して読み込むようになっているとか、後者は .NET Framework 1.0/1.1 アプリケーションから利用できないというものです。

# 前者は詳しく調べてないので、間違っている可能性があります。
引用返信 編集キー/
■42675 / inTopicNo.15)  Re[12]: GUIでActiveXコントロールを作成する方法
□投稿者/ ジェット (37回)-(2009/10/20(Tue) 09:33:43)
Atata!!さん

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

サンプルソースありがとうございました。
確認しました。
とても助かります。

ただ今の私の技量では、まだ理解するのも難しいです。
徐々に理解していきたいと思います。

使用する際には、アセンブリの配置も検討させて頂きます。
ご助言ありがとうございます。

とても参考になりました。
ありがとうございました。

解決済み
引用返信 編集キー/
■42676 / inTopicNo.16)  Re[13]: GUIでActiveXコントロールを作成する方法
□投稿者/ ジェット (38回)-(2009/10/20(Tue) 09:35:39)
Azuleanさん

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

それぞれ可能性がありますので、注意したいと思います。

.NETでのActiveXの作成は難しいということを理解いたしました。
とても参考になりました。
ありがとうございました。

解決済み
引用返信 編集キー/
■42677 / inTopicNo.17)  Re[11]: GUIでActiveXコントロールを作成する方法
□投稿者/ オショウ (351回)-(2009/10/20(Tue) 09:45:38)
No42657 (Atata!! さん) に返信
> サンプルはREGASMユーティリティで登録することを想定していますが、
> セットアッププロジェクトにすると動作しない問題がありました。
> http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=29781&forum=7
>
> 私もこの問題を解決できていません。VS2005以降では試したことがありません。

  これはInstallerクラスを使ったカスタム動作DLLを作成し、その中でRegAsmを
  呼び出す自前の機能を使って実現しました。

  因みに、Windowsサービスを登録するInstallUtilを使う場合も同様にして実現
  できています。

  VS.NETのバージョンは、2005/2008ともに問題ありませんでした。
  導入先OSは、WinXP/Vista/Win7 RC/Win2008 Serverで確認済みです。

以上。参考まで
引用返信 編集キー/
■42694 / inTopicNo.18)  Re[12]: GUIでActiveXコントロールを作成する方法
□投稿者/ 渋木宏明(ひどり) (1237回)-(2009/10/20(Tue) 12:37:34)
渋木宏明(ひどり) さんの Web サイト
>   これはInstallerクラスを使ったカスタム動作DLLを作成し、その中でRegAsmを
>   呼び出す自前の機能を使って実現しました。

RegAsm って再配布可能でしたっけ?

確か、.NET Framework 2.0 の時代は .NET Framework SDK に含まれていたよーな。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -