VB2008で…

タグの編集
投稿者 brv  (中学生) 投稿日時 2008/9/30 06:10:52
VB2008でつくったソフトを別のパソコンに持っていくと、.NET Frameworkのバージョンが古くて動かないことがしばしばあります。VB2008で古いバージョンの.NET Frameworkにも対応したソフトを作ることはできますか?

またVB6はもう提供されていませんが、VBでCOMのソフトを作れるツールがありましたら教えてください。
投稿者 るきお  (社会人) 投稿日時 2008/9/30 09:01:19
>VB2008で古いバージョンの.NET Frameworkにも対応したソフトを作ることはできますか?
はい、できます。
ソリューションエクスプローラでMy Projectをダブルクリックして、
[コンパイル]タブの「詳細コンパイルオプションボタン」を押します。
(このボタンは下にスクロールしないと見えないです。)
コンパイラの詳細設定画面が開くので「対象のフレームワーク」で古いバージョンの.NET Frameworkを選択することができます。
※多分Standard Edition以上の場合は、新規プロジェクトを作成するときにバージョンが選べます。
古いといっても.NET Framework 2.0が限界で、それより古いものは作れません。
.Net Framework 2.0はVB2005に相当します。

>VBでCOMのソフトを作れるツールがありましたら教えてください。 
COMと互換性のあるラッパーを作成することができます。
この手法ですとVB6などからCOMを呼び出すようにして.NETで作った機能を呼び出せます。
ただし、本格的に運用するのにはお勧めしません。
この手法の詳細はMSDNライブラリの以下のページをご覧ください
http://msdn.microsoft.com/ja-jp/library/5dxz80y2.aspx
投稿者 brv(質問者)  (中学生) 投稿日時 2008/10/1 05:35:53
>古いといっても.NET Framework 2.0が限界で、
それ以前のものを作成するのなら、VB2002や2003が必要ということですね。

>COMと互換性のあるラッパーを作成することができます。
すみませんが、ご紹介いただいたページを読んでもよく理解できませんでした。また今度、時間があるときにでもじっくり読んでみます。ありがとうございます。

BASICでプログラミングできる「Active Basic」という開発環境がありましたが、関数はVBと全く違うし、ライブラリは充実していないし、インテリセンスのようなものはないし… といろいろ大変でした。
VBのありがたみがよくわかります。
投稿者 るきお  (社会人) 投稿日時 2008/10/1 05:59:50
>それ以前のものを作成するのなら、VB2002や2003が必要ということですね。
はい。そうです。

>すみませんが、ご紹介いただいたページを読んでもよく理解できませんでした。
そうなんです。難しいんです。
よほどの事情がない限り.NETでCOMはやめておいた方がいいですよ。
これは単に難しいからということではなくCOMはやがてなくなっていく技術だからです。
(もっともまだ当分はなくならないと思います。)

Visual Basic 中学校にもこれをテーマとした記事があることを忘れていました。
http://homepage1.nifty.com/rucio/main/dotnet/technique/teq2_COM.htm

この記事は参考になりますか?
投稿者 brv(質問者)  (中学生) 投稿日時 2008/10/1 06:11:03
すみません、.NETからCOMを呼び出すということではなくて、.NET Frameworkがインストールされていなくても動くソフトを作りたいということです。

ネット上にVB6の提供が再開されたという記事がありましたが、ページをたどっていってもダウンロードにありつけませんでした。
投稿者 るきお  (社会人) 投稿日時 2008/10/1 07:10:31
>.NET Frameworkがインストールされていなくても動くソフトを作りたいということです。
ということは、古いバージョンであろうが新しいバージョンであろうが.NET Frameworkは使いたくないということですね。

↓最初の質問の趣旨と少し違うように思えますが・・・
>VB2008で古いバージョンの.NET Frameworkにも対応したソフトを作ることはできますか?

ともあれ、.NET Frameworkがなくても動くものを作りたいのであれば.NETで開発することはできません。
つまり、VB2008では.NET Frameworkなしで動くソフトは作れません。(でも、もう少しでマイクロソフトがSilverlight2を完成させます。これが完成すればSilverlight2用に作ったプログラムならVB2008で作っても.NET Frameworkなしで動かせます!)
VB6を使うのも手ですし、JavaやC++、Delphiなど.NET以外の環境を使うことになります。
ただし、VB6でもJavaでも.NET Frameworkがいらない代わりに似たような別のもの(ランタイムやJVM)が必要になります。

この手の制限が比較的少ないのは『いわゆる』ネイティブにコンパイルされる処理系で、具体的にはVisual C++のWin32アプリケーションやDelphiが該当します。
Delphiは雰囲気が比較的VBに似ているので使いやすいかもしれません。
ただし、どちらも有料で数万円はする代物です。

「.NET Frameworkがインストールされていなくても動く」だけでは、ちょっと範囲が広すぎて答えるのも大変なので、もう少し条件をつけてみませんか?
たとえば、なぜ.NET Framewokがインストールされていないところで動かしたいのですか?
投稿者 brv  (中学生) 投稿日時 2008/10/1 21:43:47
.NET Frameworkを使わないでソフトを作りたいのは、.NETのインストールされていない環境でも動かせるプログラムを作りたいということです。

ほかのパソコンに移すとプログラムが動かなくなることがあるからです。

でもやはりランタイムが必要ですね。
Windowsだけで動かせるというのが理想なんですが…
投稿者 neptune  (社会人) 投稿日時 2008/10/1 22:18:17
こんにちは

るきおさんが既に書かれていますが、
>この手の制限が比較的少ないのは『いわゆる』ネイティブにコンパイルされる処理系で、
>具体的にはVisual C++のWin32アプリケーションやDelphiが該当します。
>Delphiは雰囲気が比較的VBに似ているので使いやすいかもしれません。
>ただし、どちらも有料で数万円はする代物です。
ですが、VC2008は知りませんが、VC++2005ならExpressEditionでもWindowsプログラムは
かけるようです。
但し、C言語ですから、かなり行数は増えます。= 労力大
+ VBと違い取っ付き難い。

C or C++言語でWindows SDKって奴を利用して書きます。
これならちょっと大袈裟ですがWindowsのバージョンを意識するだけです。
ランタイムは要りません。

中学生からCを勉強すると・・・挫けなければの話ですが、
飲み込みは私ら、おっさんの比ではないし、吸収力抜群ですからね。
直ぐ何でもかけるようになるだろうな。
CやC++は勉強しといて損はないと思います。とっつきにくいですけどね。

「C言語 Windowsプログラム」をキーワードにググって見て、色んなサイトを見てみてください。
#基礎を勉強するときは本を買った方が良いです。
投稿者 ラキシス  (その他) 投稿日時 2008/10/1 22:43:47
> この手の制限が比較的少ないのは『いわゆる』ネイティブにコンパイルされる処理系で、具体的には Visual C++のWin32アプリケーションやDelphiが該当します。
> Delphiは雰囲気が比較的VBに似ているので使いやすいかもしれません。
> ただし、どちらも有料で数万円はする代物です。

VC++2005EEの時は別途Windows Platform SDKをインストールすれば無料でWin32アプリケーション作れます。
VC++2008EEではWindows Platform SDKは標準でインストールされます。

「はじめての方のための Visual Studio 2008 Express Edition の 10 の特徴」
http://www.microsoft.com/japan/msdn/vstudio/express/feature/2008/

WindowsでもLinuxでもMacでも動くようにしたいのであればやはりCで書くのがいいでしょうね。
Cなら資料も豊富ですし。
投稿者 brv  (中学生) 投稿日時 2008/10/3 04:09:16
Visual C++ をインストールしてみました。

neptuneさんのおっしゃる通り、「とっつきにくい」というのが実感できました。
Visual Basicと違い、プログラムを眺めていても何のプログラムなのかまったくわかりません。

これから四苦八苦しながらCやC++を学んでいきたいと思います。ありがとうございました。
投稿者 あにす  (社会人) 投稿日時 2008/11/24 03:35:19
>brvさん
>.NET Frameworkを使わないでソフトを作りたいのは、.NETのインストールされていない環境でも動かせるプログラムを作りたいということです。
>
>ほかのパソコンに移すとプログラムが動かなくなることがあるからです。

ClickOnceを試してはいかがでしょうか?.NETFrameworkは必要ですが、インストールされていない環境では自動的にダウンロードされるように出来ます。