7

「std::system(SomeString)」からの呼び出しを行う C++ プログラムのコンパイル中にエラーが発生しました。このプログラムは 3 年前にコンパイルされましたが、今日コンパイルすると、'system' は 'std' のメンバーではないというエラーが表示されます。std::system を使用するためにインポートする必要があるものはありますか、それは放棄されましたか、それとも別のヘッダー ファイルに移動されましたか。

4

4 に答える 4

27

std::systemです(そして常にそうでした)<cstdlib>

C++ 標準では、標準ヘッダーが相互にインクルードするかどうか、またインクルードする場合はどれをインクルードするかは定義されていません。したがって、3 年前、別のコンパイラまたは同じコンパイラの別のバージョンで、コードが偶然に機能した可能性があります。これは、インクルードしたヘッダーの 1 つに<cstdlib>. 現在使用しているコンパイラ/バージョンでは、そうではありません。

于 2009-09-18T22:03:38.827 に答える
7

これありませんか?:

#include <cstdlib>
于 2009-09-18T21:59:02.280 に答える
2

#include <cstdlib>コードに含まれていることを確認してください。

于 2009-09-18T21:59:16.243 に答える
0

私が試してみました。vs2008では、「std::system()」または「system()」の両方の方法で機能します。そして、stdlib.h または cstdlib のいずれかを含めたい

于 2012-04-02T01:47:51.473 に答える