[C++Builder]おまじない

C++Builderのおまじない..のようなものが気になったので、メモ。
知らないとだめですね。

#pragma hdrstop
プリコンパイルの対象となるヘッダーファイルのリストを終了します

#pragma package(smart_init)
パッケージに組み込まれるユニット群が,各ユニット間の依存関係によって決定される順序で確実に初期化されるようにする働きを持ちます

[C++Builder]リリースビルドのしかた

C++Builderでのリリースビルドの仕方をまた忘れたので、メモ
C++Builder6とC++Builder2007です

C++Builder6

プロジェクト>オプション
・ コンパイラ、「リリースボタン」押す
0

・ リンカ、「共有 RTL DLL を使う」チェック外す

・ パッケージ、「実行時パッケージを使って構築」チェック外す

しての再構築

C++Builder2007

プロジェクト>オプション
・ ビルド設定、「Release」選ぶ
・ リンカ>リンク、「動的RTL」チェック外す

・ パッケージ、「実行時パッケージを使って構築」チェック外す

しての再構築

ビルドするだけで困るとは。。

[C++Builder2007]ifstreamクラスでエラー

使用ソフト: C++Builder2007

ifstreamクラスを使うとCodeGuardでエラーが..

パラメータ不正 処理中: Project1.exe(284) - c:\program files\codegear\rad studio\5.0\include\dinkumware\fstream#24
関数に不正なファイル/パイプ ストリーム (0x3289E484) が渡されました。
0x0040B6EC 呼び出し先: fgetc(0x3289E484)
0x0040B13A - c:\program files\codegear\rad studio\5.0\include\dinkumware\fstream#24
0x0040A0A1 - c:\program files\codegear\rad studio\5.0\include\dinkumware\fstream#343
0x00409F71 - c:\program files\codegear\rad studio\5.0\include\dinkumware\fstream#323
0x0040407A - c:\program files\codegear\rad studio\5.0\include\dinkumware\streambuf#103
0x004023E2 - c:\program files\codegear\rad studio\5.0\include\dinkumware\string#572
0x004021DD - C:\sample\File1.cpp#149

プロジェクト>オプション
リンカ>リンク
で「動的RTL」を外すとエラーでなくなりました

さらに、ifstreamを呼ぶメソッドの順でエラーが発生


int main(int argc, char* argv[])
{
execCsvSample();
}

void inputCsv(ifstream& ifs)
{
string str;
while (getline(ifs, str, ',')) {
cout << str << endl;
}
}

void execCsvSample()
{
ifstream ifs("sample.csv");
inputCsv(ifs);
}

これだと怒られる
[BCC32 エラー] File1.cpp(128): E2285 'getline(ifstream,string,char)' に一致するものが見つからない


int main(int argc, char* argv[])
{
execCsvSample();
}

void execCsvSample()
{
ifstream ifs(“sample.csv”);
inputCsv(ifs);
}

void inputCsv(ifstream& ifs)
{
string str;
while (getline(ifs, str, ‘,’)) {
cout << str << endl;
}
}

これなら大丈夫

ifstreamの宣言が上にないとだめ..?

よく分かってないですがとりあえずいけました