好きな和訳タイトルを教えてください

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

宜しくお願い致します。

A 回答 (4件)

>> .Netは.NET Frameworkのバージョンごどにテストが必要になります。


>> なので、C++でActiveXコントロール(OCXファイル)を作成することを検討します。
>> C++はActiveXコントロールのサポートをしているのは何故ですか?

単純に殆どの言語を.NET上で動くように改変したため、
C++以外ではネイティブなプログラムを作成できなくなったから、
自然にそうなったのだと思います。

逆に言えば通常のC++が、現在のVSに実装されていることの方が異色で、
互換性のために残されている物だという認識です。

>> また、VB6→C++のコード変換ツールがございましたら、教えていただけませんか?
こちらについては分かりません。

仮に存在していたとしても、VBとVC++ではメモリの管理方法が全く異なりますので、
両方の言語を扱える人間が作業するべきだと思います。
    • good
    • 0

>> .NETはActiveXコントロールのサポートがないのは何故でしょうか?


あくまで推測になりますが、時代の流れによる物だと思います。
・ASP等のスクリプトでHTMLページの複雑な操作が簡単になった。
・Silverlightの誕生によって従来のActiveXを使用する場面が少なくなった。

>> VB.NETで、同様のことを実現するにはどのような方法がございますか?
せっかくなので検証してみました。
Win7 64bit、IE9、VS2010、VB.NET、.NET4.0、ActiveX DLL
・VB.NETで「クラスライブラリ」プロジェクトを作成
・プロジェクトに「ユーザーコントロール」を貼り付けてボタン等を配置
・コンパイル後にRegAsmでDLLを登録
・適当なhtmlを作成して開く
の手順で、少なくともローカル環境では動作することを確認しました。

DLLの挙動を見てみると.NET上で動いているようなので、
この方法の場合はやはりクライアント側に.NETランタイムが必要なようです。

この回答への補足

ご検証ありがとうございます。

.Netは.NET Frameworkのバージョンごどにテストが必要になります。なので、C++でActiveXコントロール(OCXファイル)を
作成することを検討します。
C++はActiveXコントロールのサポートをしているのは何故ですか?
また、VB6→C++のコード変換ツールがございましたら、教えていただけませんか?

補足日時:2012/04/09 11:59
    • good
    • 1

>> これまでは、WebサーバーからActiveX(OCXファイル)などをダウンロードして実行していましたが、


>> これがEXEファイルに代わるだけで、これまで通りと思います。正しいですか?

私の方で少し質問内容を勘違いしていました。
VB6でコンポーネントとして使用するActiveXではなく、Webを通じて使用する方のActiveXだったのですね。

WebのActiveXはC++が主で、その言語では可能であるという認識でしたので、
VBではどうかというのは分かりませんが、少なくともVB.NETで.NETを利用してActiveXを作成する場合は、
クライアント側に.NETランタイムが必要になります(VB6でいうVB6ランタイム)。

この回答への補足

混乱させて申し訳ございません。

VB6のアプリケーションは、IEに操作画面を追加して処理をします。
EXEファイルでは無理ですね。
VC++は可能ですね。

VB.NETで、同様のことを実現するにはどのような方法がございますか?
また、.NETはActiveXコントロールのサポートがないのは何故でしょうか?

宜しくお願い致します。

補足日時:2012/04/06 13:48
    • good
    • 0

VB6とVB.NETは、言語が近いだけで内部の構造はごっそり変わっています。


できることなら完全移行を考えた方が良いと思います。

>> VB.NETでOCXファイルを作成できるかどうか
出来ないと思います。よって、プロジェクトを作る方法もありません。

しかし、VB.NETでOCXのラッパーとしてのDLLファイルを作成することはできます。
この方法を用いればOCXをVB6、DLLをVB.NETで作成した後、
.NET側からDLLを呼び出すことでOCXの機能を使用することができます。

参考URL:http://msdn.microsoft.com/ja-jp/library/dd297724 …

この回答への補足

ご返信ありがとうございます。

VB.NETに完全移行をします。
EXEファイルを作成しようと思います。

これまでは、WebサーバーからActiveX(OCXファイル)などをダウンロードして実行していましたが、これがEXEファイルに
代わるだけで、これまで通りと思います。
正しいですか?
また、アップグレードウィザードは使用したほうがいいですか?

宜しくお願い致します。

補足日時:2012/04/05 15:42
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報