2011-12-14 14 views
4

私はMicrosoft Visual C++ 6.0 Projectを持っていて、それをMS VS Professional 2010 Trialで正常に変換しました。変換の問題は発生しませんでした。しかし、変換されたプロジェクトをビルドすると、 "iostream.h"が見つからないことがわかります。C++で古いiostream.hを使用するにはどうすればいいですか(Visual Studio 2010)

私は、新しく標準化された "iostream"と "using namespace std"の修正について認識しています。

しかし、私は古いiostream.hを使用する必要があります。それを達成する方法はありますか?その理由は、このプロジェクトは古いiostream.hを使用している古い静的なlibに依存しているからです。

提案がありますか?

+5

#include <iostream.h> 

を交換してください。 – sbi

+1

Visual Studioでは、すべてのリリースとのバイナリ互換性が意図的に壊れています。 * Visual Studio 10プロジェクトでVisual C++ 6でコンパイルされた静的ライブラリは使用できません。 –

+0

つまり、私はVisual C++ 6.0のコピーを持っていないと、私はうんざりしていますか? – Jane

答えて

4

ソースコードがiostream.hに依存している場合は、変更してください。 あなたは絶対に自分でiostream.h書き込み、変更することはできませんソースコードをお持ちの場合:

#include <iostream> 
using namespace std; 

静的ライブラリはおそらくヘッダファイルに依存することはできませんが。ヘッダーファイルはソースコードまたはその他のヘッダーファイルに含まれています。スタティックライブラリはオブジェクトコードで構成されています。ただし、ライブラリのヘッダファイルはiostream.hに依存することがあります。 ライブラリ自体は、C++標準ライブラリに依存している可能性があります。 私は、MSVC 6.0以来、Microsoftの標準ライブラリに互換性のない変更があったと想定しています。したがって、ソースコードや静的ライブラリの新しいバージョンがない場合、おそらく運が悪いです。

+1

あなたのコードは ''を実装していませんが、いくつかの用途には十分に近いかもしれません。標準の ''はいくつかの場所で古典的な ''と異なりますが、そのすべてがソースコードで(通常は単純な)再処理を必要とします。 –

+0

ええ、iostream.hに依存する静的ライブラリのヘッダーファイルが1つあります。しかし、それはライブラリがそれに依存しているわけではないのですか?私はライブラリのヘッダーファイルなしで、ライブラリは使用できないと思った?しかし、トピックリンカー、ヘッダーファイル、ライブラリなどにはかなり新しいです。残念ながら、私はそのライブラリのコードを持っていません。だから私はVistual Studio 2010を使いたいなら何もできないと思いますか? – Jane

+0

私はライブラリWrapperを書いて、そのすべてをDLLに入れました(MS Visual C++ 6.0を使用しています)。そのDLLはVisual Studio 2010で使用できます。それはすべての依存コード部分のような継ぎ目は、私には最適ですDLLにパックされていた:) – Jane

0

プリコンパイル済みヘッダーを使用していますか?その場合はiostream.hstdafx.hファイルに含めるか、プリコンパイル済みヘッダーを削除する必要があります。とにかく、iostreamの代わりに非推奨のiostream.hを使用する理由はないようですので、古いバージョンが必要なコードの部分を変更する必要があります(もしそうなら)。

0

私はあなたが古い入出力ストリームを必要とする理由は何らかの理由を考えることはできません

using namespace std; 

#include <iostream> 
関連する問題