vc6をvc2005 / vc2008に移植する利点は?
-
07-07-2019 - |
質問
vc6アプリケーションをvc2005に移植するようチームに依頼していましたが、いつか同じことを行う準備ができているので、移植の利点を知る必要があります。
標準のコンプライアンスを順守することの意味を彼らが本当に理解しているわけではありません。
ポーティングを行う利点をリストアップしてください。
私が直面している問題は次のとおりです
1)標準コンテナのデバッグサポートなし
2)ブーストライブラリを使用できない
3)多くのクエリ生成を使用しますが、タイプセーフではないCString形式関数を使用します
4)>>のようなvc6の問題のトラブルシューティングに多くの時間がかかります
vector<vector<int>>
&gt;&gt;の間にスペースを空けて
解決
利点:
-
より多くの標準に準拠したコンパイラ。これは、別のプラットフォームへの移植が容易になるため(これを実行したい場合)、良いことです。また、Microsoftのドキュメントではなく標準で物事を調べることができることも意味します。最後に、機能のある時点でコンパイラをアップグレードする必要があります。早ければ早いほど、作業量が少なくなります。
-
MSではサポートされていません。新しいSDKは機能しません。 64ビットは機能しません。そして、彼らもまだバグを修正しているとは思わない。
-
Nicer IDE。個人的には、MDIよりもタブの方が好きです。また、Visual Studioの構成(カスタムショートカット、メニューバーなどの作成)の方がはるかに簡単だと思います。もちろんそれは主観的です。エクスプレス版をチェックして、同意するかどうかを確認してください。
-
プラグインのサポートの改善。 VC6では使用できないプラグインもあります。
欠点:
-
移植にかかる時間。これは、使用しているコードの種類に大きく依存します。コードが非標準に準拠したVC6機能を頻繁に使用している場合、時間がかかる場合があります。アンドリューが言ったように、古いレガシープロジェクトを維持している場合、それは価値がないかもしれません。
-
パフォーマンスが悪い。本当に古いコンピューターで開発している場合、Visual Studioが遅すぎる可能性があります。
-
コストざっと見てみると、Visual StudioのライセンスはVC6のライセンスよりも少し高いようです。
他のヒント
VC2005が選ばれる理由VC6からのアップグレードに時間(およびテスト!)を投資する場合、VC2008をターゲットにしないのはなぜですか?
レガシプロジェクトを保守している場合、移植に利点がない場合があります。単純にプロジェクトを変換し、コンパイラの問題を修正すると、数週間かかり、不安定になる可能性があります。
製品を積極的に開発している場合、主な利点は、8年以上前の製品を使用しなくなることです。これは明らかに良いことです。
- VC6ではWindows SDKの最新バージョンは動作しません-最新のWindows機能を使用する場合は、最新のコンパイラが必要です。
- 後のコンパイラは、より多くの標準に準拠していると言われています。申し訳ありませんが、これ以上具体的に説明することはできません。 VC6は、標準テンプレートクラスを使用するためだけに多くのコンパイラ警告を生成することを知っています。
- 後のコンパイラでコンパイルされた外部ライブラリを使用する場合、互換性のあるものを使用する必要があります。
過酷な移行の準備をします-IDEは本来あるべきものとは異なります。
アプリケーションとベースプラットフォームの異なるバージョンとの完全な互換性を確保するため。そして、それによって見つかったエラーを修正して、エンドユーザーが自分のバージョンのベースプラットフォームを使用するのに十分な自由を与えるようにします。
変換するべきではないと言っているわけではありませんが、具体的なポイントを取るために:
1)標準のデバッグサポートなし コンテナ
VC ++ 6で常に標準コンテナを使用してコードをデバッグします。ここで何が問題ですか?
2)ブーストライブラリを使用できない
はい。簡単なものを使用できる場合があります。
3)トラブルに多くの時間が費やされる &gt;&gt;
のようなvc6問題の撮影[これをマングルするのをやめさせることはできません、nb]
&gt;&gt;の間にスペースを空けて
ええと、それは構文エラー(少なくともVC ++ 6が理解しているC ++のバージョンでは)であり、そのようにフラグが立てられます。チームが「多くの時間」を費やしている場合この種のことには、別のチームが必要です。
編集:
3)多くのクエリ生成を使用しますが、 次のCString形式関数を使用します タイプセーフではありません
VS2005では、同様にタイプセーフではありません。なぜこれが移植の理由なのかわかりません。タイプセーフが必要な場合は、標準のC ++ I / Oメカニズムを使用します。
あなたのチームが利点を見ることができず、利点を説明できない場合、なぜあなたは彼らにこれを行うように頼んでいますか?
あなたはそれのために移植しているように聞こえます。