
Microsoft のVisual Studio 2012 を使用しています。VC++2012 を使用して静的リンクしたアプリケーションを作りたいのですが、静的リンクを行う設定方法がわかりません。言い換えると .Net FrameWork がない環境でも動くアプリケーションを作りたいのです。
詳細は、MSN 相談箱 QNo.8057365(投稿日時 - 2013-04-24 12:53:43)を参照ください。
現在は、次のMSDNの技術資料「Deployment in Visual C++」
http://msdn.microsoft.com/ja-jp/library/dd293574 …
に記載されている2番目の方法Local Deployment(ローカル配置)に記載されている必要な DLL ファイルをコピーする方法で実現していますが、Microsoft に相談したところ、次のように言われています。
『VC++ 2012 のLocal Deployment を使ってアプリケーション プログラムの開発を行うのは良いが、一旦開発が成功した後はLocal Deployment の使用を禁止する。』
以上の経緯から、静的リンクした VC++ 2012 アプリケーション プログラムを作る必要があります。具体的な形態は、Windows PE 3 で起動したPC でVC++ 2012 で開発したアプリケーション プログラムを動かします。
Visual Studio 2012 でプロジェクトを定義するとき、「静的リンク アプリケーション」指定の必要があると考えるのですが、その方法がわかりません。どうかご教示をお願いします。
No.3ベストアンサー
- 回答日時:
>(1)静的リンク=マルチスレッド の発想ができません。
キーワードを指定してのヘルプ検索のヒントをご教示ください。VCの以前からの流儀…ですからねぇ…。
「VC 静的リンク」で検索するとランタイムライブラリの設定を変更する。と紹介されているページが見つかるでしょう。
で、設定を変更する際のメニューなどの操作手順を解説しているページも見つかるかと。
ネット上に情報はあるのですから、そのように「調べる手順」は身につけておいた方がいいかと。
>(2)「上級者用の設定」の文言も気がかりです。見つけ方を教えてください。
VS2010の頃はあったのですが、VS2012でも存在するのかどうかは不明です。
MicrosoftのサイトだとVS2012 ExpressEditionにはあるかのような記述がありましたが、
手元の「VS Express for Desktop」には無いんですよねぇ…。
# http://msdn.microsoft.com/ja-jp/library/vstudio/ … の
# 「1.[デバッグ] メニューの [例外] をクリックします」にあるメモに。
>(3)良い参考書があればご教示ください。
人によって変わるでしょうから本屋で立ち読みしながら探して下さい。としか言えないですね。
ただし、今回の場合はMFC(ExpressEditionにはない)ならともかく.NET Frameworkは使えませんので、少々古いバージョン辺りの本になるかも知れません。
.NET Frameworkメインで記述されている本では今回の目的には沿わないでしょう。
# Win32APIプログラミングとかそういうのでしょうかね…。
私の環境にはVS Express for Desktopはインストールしてありますが…
もっぱら使っているのはVS2010 ExpressEdition(C++かC#)です。
MFCが必要とかの場合は製品版を所持しているVS2005になってしまいますが。
そんなワケで2012はほとんど使っていません。
# メイン環境もまだWindows7ですし。(仕事中はXPですからVS2012も動きませんしね)
Wr5さん、戴いた回答に感謝して私の質問をクローズさせていただきます。
『VCの以前からの流儀…ですからねぇ…。』と言える Wr5さんをうらやましく思えます。
ありがとうございました。
No.2
- 回答日時:
>どこでどのように設定すればよいのか教えてください。
ですから、既に回答あるようにプロジェクトのプロパティでランタイムライブラリの項目を「マルチスレッド(/MT)」に変更するだけです。
キーワードで検索すれば見つかるネタですし、前回の質問で「VC++2010Expressで静的リンク」として掲示されているリンク先の質問でも変更のしかたを質問者が書いていますよ。
# バージョンは違えどこの辺りの設定は以前からほとんど変わっていません。
注意点としては構成でReleaseを選択しておくこと…くらいですかね。
「上級者用の設定」に変更しないと表示されないメニュー項目もあるかも知れませんが…。
この回答への補足
Wr5さん、再度の回答ありがとうございます。
『ですから、・・・~に変更するだけです』と言われても、どうすれば良いのか戸惑うばかりでした。
『バージョンは違えど・・・以前からほとんど変わっていません』のアドバイスも2012しかないので、猫に小判です。
「上級者用の設定」の文言も他の回答者から教わり、探したのですが、見つかりません。
「静的リンク」キーワードもヘルプで探せませんでした。
Wr5さん、VC++2012を初めて使います。VS2012をインストールし、Wr5さんが前回の回答に記載されていたのとほぼ同じコードを試したのが先月です。今回の回答を戴き、一生懸命探し、次のようにプロパティを変更しました。
プロジェクトのプロパティ → 構成プロパティ → C/C++ → ランタイム ライブラリ → マルチスレッド (/MT)
Release構成で、完成したEXEサイズは152KB、やっと目的を達成しました。
私にはWr5さんと対等にディスカッションできる能力がありません。VC++初心者が理解できるレベルでの教えを心からお願いします。
VC2012++を使うにあたり、一夜漬け勉強をしたのですが全く間に合っていません。
今回戴いた回答で、とりあえずの目的は達成できたのですが、次の項目についてアドバイスを戴きたくお願いします。
(1)静的リンク=マルチスレッド の発想ができません。キーワードを指定してのヘルプ検索のヒントをご教示ください。
(2)「上級者用の設定」の文言も気がかりです。見つけ方を教えてください。
(3)良い参考書があればご教示ください。
No.1
- 回答日時:
>言い換えると .Net FrameWork がない環境でも動くアプリケーション
.Net Framework使っていたら無理じゃないですかねぇ。
>neKo_deuxさんご指摘の通り、C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\redist\x86\Microsoft.VC110.CRT\ フォルダーから msvcp110.dll と msvcr110.dll をVC++アプリケーションを運搬する USB メモリーなどにコピーするだけで、解決します。
ってだけなら、既に回答先に示されている「マルチスレッド(/MT)」で可能かと。
まぁこの場合作れるアプリケーションはC/C++でWin32APIを使用したものになりますが。
# .Net Framework使ってないもの。ということになります。
ちなみに…
#include <iostream>
using namespace std;
int main()
{
cout << "Hello, World!" << endl;
return 0;
}
こんな程度のコードが12KBから153KBになります。
この回答への補足
Wr5さん、回答ありがとうございます。Wr5さんの回答文の最後の行
「こんな程度のコードが12KBから153KBになります。」
は、静的リンクで必要なモジュールをすべてリンクするので当然です。何も問題ありません。
私が知りたいのは、Visual Studio 2012 で、この153KBの実行可能なモジュールを作る方法です。
どこでどのように設定すればよいのか教えてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) フレームワーク「4.8.1」で、[Sub Main]が動かない。助けて下さい 3 2022/11/14 15:40
- その他(プログラミング・Web制作) Visual StudioでDjangoのプロジェクト配下のappを作成する方法 1 2022/05/01 03:47
- その他(プログラミング・Web制作) プログラムの起動、利用について、使用期間を設定する方法 3 2023/08/06 21:03
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- ソフトウェア VisualStudio のデータブレークポイントを有効にする方法 1 2023/05/01 09:42
- Windows 10 Visual StudioとVisual C++ Build Toolsについて 1 2023/04/16 03:42
- Visual Basic(VBA) VBA アドインについて お詳しい方 ご教授をお願いします。 相談事項 現在以下の対応を実施した所、 1 2022/11/02 16:53
- ネットワーク OSI参照モデルの各層の役割がわかりません。 3 2023/04/21 21:12
- Visual Basic(VBA) Access VBAから使用したExcelプロセスを閉じる方法について 4 2022/06/08 17:50
- C言語・C++・C# Microsoft Visual Studio Community 2019 タブキーが入力できない 1 2022/04/30 06:39
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
InDesignが英語表示になってし...
-
ID ManagerにログオンしてもID ...
-
サンダーバードの文字サイズに...
-
illustratorのデフォルト表示を...
-
photoshop7 が起動しなくなりま...
-
アドビイラストレーターCS2のフ...
-
PC起動直後にWindowsのインスト...
-
グラボが認識できません。BIOS...
-
Blenderを再インストールした際...
-
AopenのMX3WPro+Celeron566でFS...
-
グループポリシーのリセット方...
-
Access2003 起動時の設定解除方法
-
PowerDirector14 設定の初期化
-
windos10 BIOS設定いじってし...
-
マック(os9.2)の音が出ない
-
Macでオープンオフィスが開きま...
-
ネットカフェに設置されているP...
-
PDFのフルスクリーン設定解除方...
-
Thunderbirdの起動が遅い
-
Excel起動時の設定は?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ID ManagerにログオンしてもID ...
-
InDesignが英語表示になってし...
-
PDFのフルスクリーン設定解除方...
-
Blenderを再インストールした際...
-
Apache1.** と Apache2.** の...
-
CPU交換をしたら、ファンが全開...
-
Macでオープンオフィスが開きま...
-
ASUSのマザーボードのBIOS設定...
-
Thunderbirdの起動が遅い
-
拡張子を判別してくれるソフト
-
Adobe Readerの広告を外す方法
-
VC++で静的リンクしたアプリを...
-
Access レポートプレビュー時に...
-
グラボが認識できません。BIOS...
-
HULFTについて
-
indesignでデフォルトの塗り等...
-
thunderbirdで受信ボタンを押さ...
-
PowerDirector14 設定の初期化
-
Photoshop Elementsの環境設定...
-
クリップNOTE 環境設定ファイル...
おすすめ情報