
現在Microsoft Visual Sutudio C++6.0を使用しているものです。
今、Microsoft Visual Sutudio C++2008の無料版に乗り換えようと考えているのですが、どのように違うのでしょうか。
自分で調べたところ2008は64ビットで6.0は32ビットで処理していると書いてあったのですが、その違いが分かりません。
具体的には
1.6.0で作ったプログラムは2008でも同様に動くのでしょうか?
2.6.0と2008では大きく変わった点はどこでしょか?
の2点が知りたいです。
調べたところsprintfを使用すると警告あるいはエラーがおきるとかあったのですが、それは本当でしょうか?
ちなみに私はC++ではなくC言語を使っています。よろしくお願いします。
No.5ベストアンサー
- 回答日時:
>2008は64ビットで6.0は32ビットで処理している
VC6の時代はx64がそもそもなかったので、
64ビット版ネイティブのコンパイルが「怪しかった」のです。
64ビット版のコンパイルは2003.netから正式に可能になってます。
>1.6.0で作ったプログラムは2008でも同様に動くのでしょうか?
基本的にプロジェクトファイルは、
新しいVCで開くと、
その都度コンバートしてくれるので、
そんなに心配はないでしょう。
あとは、コンパイル時にリンクされる、
ランタイムライブラリが異なったりします。
VC6ではMSVCRT.dll
2008ではMSVCR9.dll
# 2008に限らず、2003, 2005でも同様ですが。
# 古い環境に持っていくと、動作しなくなる
# 可能性も考えられます。(DLLを同封しておけば大丈夫ですが)
> 2.6.0と2008では大きく変わった点はどこでしょか?
内部的に違うものとかは、
C++の構文解釈や最適化方法も異なっています。
例えば有名なものだとVC6だとクラス内の、
const変数が定義できなかったりとかでしょうか。
# 他の方もおっしゃってますが、
# 互換性のある別製品くらいに思ったほうが良いかも知れない
> そもそもリソースエディタが何なのか知らないのです(汗)
モジュールなどに「バージョン番号」をつけたり、
「ダイアログフォーム」をリソースとして用意したり、
「ストリングテープル」や「アクセラレータ」、
「アイコン」もこれに含まれますが、
こういった物を総合して「リソース」と呼びます。
通常これらはスクリプトで記述されるのですが、
これをGUIで視覚的に作ることができるのがリソースエディタです。
No.6
- 回答日時:
ちょっと意味が分からなかったので補足です。
>2008は64ビットで6.0は32ビットで処理している
コンパイラの動作はすべて、そのプロジェクトと、
ユーザ毎の設定によって行われます。
# もちろん64ビット版のコンパイルには、
# 対応するCPUが必須ですが。
2008などは別に64ビットで動作しているわけではありません。
そのように設定をすれば、それが可能というだけです
No.4
- 回答日時:
>試しにVC2008を入れてみて今までのファイルが使用できるか試してみました。
64ビットに変更したのが関係あるのか警告それにエラーも出てきてしまいました。VC6.0でMFCやリソースエディタに依存するファイルをincludeしている可能背があります。
MFC使っていなくても取り込んでくれたのでIDEがリソースの為に使用していたファイルかも知れません。
afxres.hが無くてビルドできないかと。
# VS2005ExpressEitionでハマったので、製品版が発売になった当日にアップグレード版買いました。
回答ありがとうございます。
afxres.hですね。確認してみます。
include等については今まで適当に「ファイルを追加」でなぜか動くからと深く知ろうとしませんでした(汗)
やはりそういう部分の知識も大事ですよね。勉強していきたいです。
No.3
- 回答日時:
> 64ビットに変更したのが関係あるのか警告それにエラーも出てきてしまいました。
これは、「VC6でたまたま動いていただけ(潜在バグだった)」、
「処理系依存で定義が変わった」、「処理系が親切に/正しくなった」など、
いろいろな理由で、いろいろなものが起きます。
エラー内容も(VC6とは異なりますが)それなりに親切に出ると思いますので、個別に確認ください。
> あと、VC2008はワークスペースではなくてプロジェクトというものを作らなくてはいけないようですね。
dsw -> sln (ソリューション)
dsp -> vcproj
に名前が変わってます。どちらも単にテキストですが、後者はXMLです。
> 初歩知識だったら申し訳無いのですが、これはどういう意味でしょうか?
Win32 APIによるGUIアプリを作っているとリソースファイルを作ることがありますが、
このためのエディタが付いていません。まぁOpenCVの描画などには直接影響ないです。
#2の方が書かれているのは、(この文脈では)コンパイラではなく、
リソースエディタですね。(Expressにはこれが無いので別途用意するわけです)
親切にありがとうございます。
なるほど、「VC6でたまたま動いていただけ(潜在バグだった)」が一番近い気がします。
これを機会にもう少しCについて勉強していきたいと思います。
No.1
- 回答日時:
> 1.6.0で作ったプログラムは2008でも同様に動くのでしょうか?
既存がwell formedなCであれば、おそらくその範囲では動くのではないかと思います。
そうでなければ、潜在バグが顕現して悩まされたりするかもしれません。
> 2.6.0と2008では大きく変わった点はどこでしょか?
違いを上げればおそらくきりがないくらい違います。
主な違いは、操作性でしょうか。まぁ、別物です。
後は、C++の実装が違うとかはCだと影響薄かもしれませんが、
ExpressはMFC以外にもリソースエディタなどもないので、
もしGUIを作られているなら影響があります。
> 調べたところsprintfを使用すると警告あるいはエラーがおきるとかあったのですが、それは本当でしょうか?
本当です。Microsoftはよりセキュアな関数の仕様を推奨しているため、
そちらを使え…とおせっかいを言います。(無視する設定は可能です)
VC2008をVC6の入っている環境に入れるサイドバイサイドはできるはずですので、
(逆は不可能。また、VC2008の後にVC6のSPを当てるみたいなこともNG)
百聞は一見にしかず。とりあえず、VC2008Expressを使ってみたらどうでしょうか。
回答ありがとうございます。
試しにVC2008を入れてみて今までのファイルが使用できるか試してみました。64ビットに変更したのが関係あるのか警告それにエラーも出てきてしまいました。
あと、VC2008はワークスペースではなくてプロジェクトというものを作らなくてはいけないようですね。頑張って勉強していきたいと思います。
>ExpressはMFC以外にもリソースエディタなどもないので、もしGUIを作られているなら影響があります。
初歩知識だったら申し訳無いのですが、これはどういう意味でしょうか?今までが動けばいいというスタンスで独学でやってきたため、全く用語が分かりません。私は描画にopenGLを使用していますが、それに大いに関係のあることなのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) python fbprophetについて 1 2022/09/29 19:44
- 画像編集・動画編集・音楽編集 Native Accessのインストールが先に進みません 2 2022/09/14 13:34
- Visual Basic(VBA) フレームワーク「4.8.1」で、[Sub Main]が動かない。助けて下さい 3 2022/11/14 15:40
- Windows 10 アプリ内のMicrosoft・・・ 4 2022/10/10 16:08
- C言語・C++・C# visual studio 2019 についての質問です 1 2022/09/21 09:58
- C言語・C++・C# 「using Windows」でエラーが出る 3 2022/12/23 19:53
- Outlook(アウトルック) outlookの送信エラーについて 1 2022/05/13 12:04
- その他(Microsoft Office) office2016のパソコン2台インストール 2 2023/03/07 17:35
- Word(ワード) LibreOfficeで保存データをMicrosoft Office 2013に変更したい。 2 2022/06/14 23:36
- C言語・C++・C# PC画面を録画するプログラムでdllの読み込みエラー 1 2023/04/22 08:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
外部シンボル "_main"は未解決です
-
” OS ビルド ” の意味が分か...
-
エクセルVBAではRound...
-
「fatal error C1189」を回避す...
-
セミコロンについて
-
<math.h>があるのにsqrtが・...
-
Makefile作成時の拡張子.oとは?
-
ILSpyで、デコンパイルできない。
-
VBAを何回も作り直して、容量が...
-
C言語でmからnまでの合計を求め...
-
クリティカルエラー Expressio...
-
USBカメラライブラリー ECWLIB...
-
TeXエディタの選定
-
visual fortranのコンパイル時...
-
C言語でヘッダファイルにグロー...
-
複数ファイルから同じ関数の呼...
-
マクロ コンパイルがグレーバック
-
PRO*C コンパイルエラー
-
MO, PO, POT, ファイルの開き方...
-
【VC++6.0(MFC)】警告「LINK : ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
” OS ビルド ” の意味が分か...
-
VBAを何回も作り直して、容量が...
-
エクセルVBAではRound...
-
C言語でヘッダファイルにグロー...
-
1 つ以上の複数回定義されてい...
-
「fatal error C1189」を回避す...
-
Makefile作成時の拡張子.oとは?
-
外部シンボル "_main"は未解決です
-
<math.h>があるのにsqrtが・...
-
ILSpyで、デコンパイルできない。
-
クリティカルエラー Expressio...
-
【VC++6.0(MFC)】警告「LINK : ...
-
マクロ コンパイルがグレーバック
-
セミコロンについて
-
複数のサブディレクトリを一緒...
-
C言語のコンパイルができません
-
PRO*C コンパイルエラー
-
ExcelVBAで『ByRef 引数の型が...
-
コンパイルエラー:ユーザ定義...
-
プリコンパイルエラーについて
おすすめ情報