これからMicrosoft Visual Studio 2005、2008、2010の中で何かプログラミング言語を勉強しようかと思っています。そこで次の条件を満たしている言語があれば教えてください。
・WindowsXP以降で動くGUIソフトを作ることができる
・実行ファイルのサイズが異様に大きくならない
・出来上がったプログラムを他人の環境(XP以降)で動かしてもらう際に、.NET Frameworkやランタイムのようなものを別途インストールしてもらわなくても良い
過去にVB6を少し使ったことがあるという程度の知識しかないため、習得難易度についても一緒にアドバイス頂けると有り難いです。宜しくお願いします。
No.3ベストアンサー
- 回答日時:
>・WindowsXP以降で動くGUIソフトを作ることができる
>・実行ファイルのサイズが異様に大きくならない
>・出来上がったプログラムを他人の環境(XP以降)で動かしてもらう際に、.NET Frameworkやランタイムのようなものを別途インストールしてもらわなくても良い
この条件だけで考えると、Microsoft Visual Studio 2005、2008、2010 はどれも同じです。
Visual Studio には C/C++、C#、Visual Basic などが入っていますが、C#、Visual Basic は .NET Framework なしでは動作しません。
C/C++ はどうかというと、 C/C++ の標準ライブラリや MFC ( Microsoft Foundation Class ) を使う場合、プロジェクトのプロパティで、スタティック ( exe に埋め込み ) にするか DLL にするかを指定できます。
スタティックにすれば、別途 DLL 類をインストールする必要はなくなりますが、これはこれでメリット・デメリットがあるので注意が必要です。
まず、実行ファイルのサイズですが、MFC アプリケーションのテンプレートを使用してそのままビルドした場合 ( Visual Studio 2008 で、Release ビルド )
MFC:「スタティック ライブラリで MFC を使用する」、ランタイムライブラリ:「マルチスレッド」の設定だと、約 3,000 KB
MFC:「共有 DLL で MFC を使う」、ランタイムライブラリ:「マルチスレッド DLL」の設定だと、約 400 KB
になりました。
あと、ランタイムライブラリにバグがあった場合 ( Service Pack などがリリースされた時 )、スタティックライブラリだと、ビルドしなおして配布をしなおさなければならなくなります。
MFC:「共有 DLL で MFC を使う」、ランタイムライブラリ:「マルチスレッド DLL」の設定でも、Visual Studio でインストーラーを作成すれば、必要な DLL がインストーラーに組み込まれますので、「他の PC で実行しようとしたら動かない」というリスクは下げられると思います。
.NET Framework を使用するアプリのインストーラーを作った場合は、インストーラーを実行すると必要なバージョンの .NET Framework がインストールされているかどうかを調べ、インストールされていなければ .NET Framework をダウンロードしてくれる作りになっていたと思います。( ダウンロードを開始するまえに、ダウンロードしてインストールするかどうかをユーザーに問い合わせを行います。)
No.5
- 回答日時:
Side-By-Sideについて
私は、このあたりの事情を正しく理解していなくて、Side-By-Side って .NET Framework だけの機能だと思っていたのですが、調べてみると2005と2008ではSide-By-Side配置になるが、2010ではまた2003以前の非Side-By-Side配置に戻っているそうです…。
No.4
- 回答日時:
> あと、ランタイムライブラリにバグがあった場合 ( Service Pack などがリリースされた時 )、スタティックライブラリだと、ビルドしなおして配布をしなおさなければならなくなります。
この点ですが、VisualStudio2005以降であれば、SideBySide(SxS)技術が取り入れられているので、 DLLのランタイム等を使用していても、マニフェストの変更をしない限り新しいバージョンのDLLを使用したりしないはすです。なので、スタティックライブラリの場合とさほど変わりはないはずです。
No.2
- 回答日時:
CLRを使わないC++であれば、ランタイムやMFCをスタティックリンクすれば、「別途インストール」する必要はなくなりますが、その分実行ファイルのサイズは大きくなります。
それが「異様に」に該当するサイズかどうかは主観ですので判断できません。No.1
- 回答日時:
「.NET Frameworkやランタイムのようなものを別途インストールしてもらわなくても良い」という時点で、選択肢は「なし」です。
Microsoft Visual Studioで使える言語には、そのようなものはありません。一番近いのはC++ですが、これもランタイムライブラリは必要です(あなたのパソコンにもおそらく入っているでしょう)。まぁ、MFCなど一切使わず、すべてAPIを直接コールして書けば、C++ならかろうじてランタイムやライブラリなど一切不要のアプリが作れますが、全くおすすめしません(そんな馬鹿げたことをする人はいまどきいないので)。そもそも、現在のVisual Studioは、.netフレームワークの開発を主眼において設計されていますので、「.netをインストールしなくても動く」というのはVisual Studioで動く(C++以外の)言語では無理があるでしょう。その他の言語を見渡せば、例えばDelphiがランタイム不要のアプリを作れますが、そうなると「実行ファイルのサイズが異様に大きく」なります。「ランタイム」か「できたアプリのサイズ」かどちらかを諦めてください。でないとどうしようもありません。
現在、.netのランタイムはOSに標準で組み込まれていますし、インタープリタなどでなくネイティブコードを生成する言語でランタイム不要な開発言語を求めるというのは、正直、難しいものがあるでしょう。
あるいは、インタープリタ言語(スクリプト言語)であれば、条件に合うものはあるでしょう。例えばWindows Script HostでJscript + HTMLでランタイム不要なプログラムは作れます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- ソフトウェア VisualStudio のデータブレークポイントを有効にする方法 1 2023/05/01 09:42
- Visual Basic(VBA) フレームワーク「4.8.1」で、[Sub Main]が動かない。助けて下さい 3 2022/11/14 15:40
- Windows 10 Visual StudioとVisual C++ Build Toolsについて 1 2023/04/16 03:42
- C言語・C++・C# Microsoft Visual Studio Community 2019 タブキーが入力できない 1 2022/04/30 06:39
- Java EclipseとVisual StudioをPC1台にインストールしただけではPCは重くならない? 3 2022/12/08 15:35
- その他(プログラミング・Web制作) Scratchについてです 作ったプログラムをコンピュータに保存してそのまま何もいじらずにそのプログ 1 2022/05/19 18:51
- Windows 10 explorerをedgeで開く方法 2 2022/06/05 14:59
- Windows 8 SSD換装の注意点? アプリケーションインストールでの弊害? 4 2023/01/06 04:18
- 仕事術・業務効率化 効率的な勉強方法(分野問わず)を教えてください 1 2023/08/16 01:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Eclipseのアンインストールの仕方
-
マイクラjavaでForgeを入れたい...
-
セットアップファイル(MSIとEX...
-
eclipse pleiades phpのインス...
-
vs codeはオフラインでも使用で...
-
ユーザー名を漢字で登録してし...
-
この <windows.h> はどこに在る...
-
OptiFineをJAVAで開こうとする...
-
ブラウザ検証
-
ワードプレスで、特定の記事の...
-
Win環境でe複数バージョンをイ...
-
eclipsのアンインストール
-
html上で、バッチやexeファイル...
-
Eclipseで、プロジェクト名のと...
-
Tomcatは起動しますが初期index...
-
【Tomcatが突然動かなく...
-
「StrutsによるWebア...
-
JAVAでアルファベットを数...
-
LaTeXでのアンダーバーの入力
-
VBプログラムから「管理者とし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipseのアンインストールの仕方
-
マイクラjavaでForgeを入れたい...
-
vs codeはオフラインでも使用で...
-
ActivePerlをインストールしよ...
-
この <windows.h> はどこに在る...
-
MSDNのコレクションがありませ...
-
ワードプレスで、特定の記事の...
-
セットアップファイル(MSIとEX...
-
Javaをインストールしたんです...
-
OptiFineをJAVAで開こうとする...
-
ユーザー名を漢字で登録してし...
-
MATLABのtoolboxのインストール...
-
Jupyter Notebook の拡張機能(N...
-
windows7 ADTプラグイン追加で...
-
64bitでbasp21の使用方法
-
VBSでuser32.dll(Win32API)を...
-
JDKでJavaアプリケーション実行...
-
IEの印刷機能を制御して印刷設...
-
OO4Oのインストールのしかた
-
stdoleについて
おすすめ情報