タダで使えるBorland C++ Part5

このエントリーをはてなブックマークに追加
934デフォルトの名無しさん:2009/02/23(月) 21:52:55
EOF付きのテキストはバイナリファイルになっちゃうな
935デフォルトの名無しさん:2009/03/10(火) 14:23:34
BCC5.51にて、3つ以上の引数を持つ仮想関数を含むクラスを仮想継承しようとすると
コンパイラが想定外の(ファイル終端以降の行番号を示して、その関数にvoidが渡されたかのような)メッセージを吐くのですが、
これはこのバージョンでの仕様なのでしょうか。


class Base {
virtual Base& f(const double x, const double y, const double z) = 0;
};
class Derived : virtual public Base {
virtual Derived& f(const double x, const double y, const double z) {}
};

int main(int argc, char *argv[])
{
Derived d;
return 0;
}
936デフォルトの名無しさん:2009/03/10(火) 15:51:54
>>935
BCCの最新版CodeGear CC 6.10でも動揺のエラーが出ました。

VS2008ではコンパイルは通ります。

バグではないでしょうか。
937デフォルトの名無しさん:2009/03/10(火) 17:08:51
>>936
ありがとうございました。
構造体に引き渡してなんとかしてみることにします。
938デフォルトの名無しさん:2009/03/10(火) 17:58:50
派生クラスで返値型の多態性をやめると動きますね。

class Base {
        virtual Base& f(double x, double y, double z) = 0;
};
class Derived : virtual public Base {
        virtual Base& f(double x, double y, double z) {  }
};

まあtypeof(this)を返すタイプの構文は趣味によるということでしょうか。
私はSTLの影響でこれを使うようになりましたが。
939デフォルトの名無しさん:2009/03/11(水) 03:29:47
virtual 継承をやめても通るようになる。
この場合はエラーが出た方がよい気がする。
940E−mail:sage:2009/04/12(日) 15:32:26
VS/VC++でOKなのに、コンパイルエラーが出ます。原因がわかりません。
「演算子オーバーロードにconst修飾子が付いてない」と言われました。
演算子の左オペランドをconstにするにはどうすればいいでしょうか?
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8868.txt
941デフォルトの名無しさん:2009/04/13(月) 03:20:31
現在MacOSからカキコのため確認できんが、

VLint operator-( VLint& b ) const;

みたいにする。左オペランド=構造体自身がconstになるので
operator関数の中にメンバ書き換えがあるとコンパイルエラー。
どうしても書き換えたい場合mutableにすればいいが、いろいろ注意。
942E−mail:sage:2009/04/13(月) 12:10:38
>>941 C++文法の解説をいただき、有り難う御座います。
http://pc12.2ch.net/test/read.cgi/tech/1235927586/708 コンパイルエラー (BCC 5.6 か?)
http://pc12.2ch.net/test/read.cgi/tech/1235927586/716 const に、しない修正
const が宣言の前に付く場合とか、const 関数について、色々勉強になりました。
コンパイルエラーですが、MACならGCCがありますが、/716 はGCCでも上手くいきました。
943E−mail:sage:2009/04/13(月) 12:13:52
944デフォルトの名無しさん:2009/04/13(月) 20:14:03
今更だけど、VC++でも警告出るし、/Za(標準準拠)ではエラーになるじゃないか。
945デフォルトの名無しさん:2009/04/13(月) 23:43:00
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8868.txt
ですが、なぜかこちらの、VC++6.0 と VS2005 で
デフォルトの言語拡張有効(/Za無し)では、ワーニングなどのエラーを確認出来ません。
ちなみに、インストールした後、VS2005で、
プロジェクト : error PRJ0003 : 'cmd.exe' の起動中にエラーが発生しました。
のエラーが出るようになりました。
946デフォルトの名無しさん:2009/04/14(火) 04:29:45
>>945
/W4 つければ「非標準の拡張が使われた」云々の警告がでるはず。
Visual C++ は標準では警告のレベルが低すぎるので、常に /W4 に
しておくのがおすすめ。
947デフォルトの名無しさん:2009/04/14(火) 08:57:12
処理系に関わらず、趣味でやってるなら、警告最強にしておいた方がいいな。
仕事だと、どうにもならないことも多々あるけどwww
948デフォルトの名無しさん:2009/04/14(火) 13:53:21
>>946 サンクス。なるほど、/W3 でした。
これからは出来るだけ/W4 を付けてコンパイルするようにします。
なおcmdのエラーですが、PATHを直せば、VS2005と共存も出来ました。
949デフォルトの名無しさん:2009/04/15(水) 21:16:21
-L"c:\Borland\Bcc55\lib" でilink32.cfg 作ってもコンパイルしようとすると
Fatal: ファイル ilink32.cfg が開けませんって出るのなんでですか?
拡張子はしっかり変わってるしC:\borland\bcc55\Binにも入ってるのに...orz
950デフォルトの名無しさん:2009/04/15(水) 21:32:21
自己解決した
スマソ!
951デフォルトの名無しさん:2009/04/23(木) 21:18:21
>>881-884
復活してた。

以前は 入力フォームに入力→FTPへ→飛ばされた先が空っぽだった
今度は 直ぐにダウンロードが始まる→フォームの入力画面へ

に変わってた

ttp://downloads.embarcadero.com/free/c_builder
952デフォルトの名無しさん:2009/04/24(金) 22:19:24
もぉ、駄目かもわからんぇ
953デフォルトの名無しさん:2009/04/30(木) 10:36:42
BccInst
Borland C++ Compiler 5.5.1を誰でも簡単にインストールできます。
http://www.geocities.jp/katayama_hirofumi_mz/bccinst/
954デフォルトの名無しさん:2009/05/05(火) 11:23:27
C++ Builder 2009 のトライアル版入れて
コマンドラインコンパイラだけ使い続けることってできないのけ?
955デフォルトの名無しさん:2009/06/14(日) 17:12:26
BCCDevelopだが、コンパイルの最後に
「Fatal: Command arguments too long」と出てエラーになる。

引数リストが長すぎるって事は、
プロジェクトに.c.hファイルを使いすぎという事なんかな。(385個)

リソースの上限が1Mといい、どんどん使うのが苦しくなっていく・・
この2つ以外は、完璧なコンパイラなんだが。
956デフォルトの名無しさん:2009/06/14(日) 17:21:04
bcc32 -W -3 -O2 -w -AT -pc -H- -k -b -eRelease\hoge.exe
Release\one.obj Release\two.obj ...

ファイルの数が多すぎるというよりかは、
全ファイルの名前の長さの合計が長すぎるの方が正しいか。
957デフォルトの名無しさん:2009/06/15(月) 10:58:26
>>956
ソース公開されているみたいだから自分でレスポンスファイルを使うように変更してみなよ。
と思ってソース見てみたら、ini ファイルの UseMakeFileEx を true にしたら良いらしい?
BCC Developer 自体を使ったこと無いからわからんけど試してみ。
958デフォルトの名無しさん:2009/06/15(月) 12:03:33
>>957
サンクス、試してみる。
959デフォルトの名無しさん:2009/06/15(月) 14:09:06
>>957
iniファイルにはその項目は見つからなく、
bdpファイルにはその項目があったのでtrueにしてみたが、
(UseMakeFileExはプロジェクトの設定でのまとめてコンパイルの項目にあたる)
>>956と同じように、bcc32コマンドに全objファイル名が引数にされ、
>>955と同じ引数が長すぎるというエラーが出た。

変わりに、出力ディレクトリ名をデフォルトのReleaseから、
短い名前(Rel等)にした所、コンパイルが成功した。
bcc32コマンドでRelease\one.obj Release\two.obj ... と渡される引数が、
Rel\one.obj Rel\two.obj ... とかになり、
引数の長さを短くできるのが成功要因と思われる。
960デフォルトの名無しさん:2009/06/15(月) 17:24:52
その項目を追加したらどうなる?

つーか、ソース読んでみなよ。
FrBDMain.pas だよ。
961デフォルトの名無しさん:2009/06/15(月) 23:19:12
>>960
その項目を追加というのは、
BccDevを起動し、まとめてコンパイルのチェックボックスをチェック ==
メモ帳等を起動し、bdpファイルのUseMakeFileExの項目を1にすると言う事?
なら、>>959で書いたのがそれで、同じエラーが出た。

確かまとめてコンパイルは、
例えばひとつのファイルを修正してコンパイルした時でも、
そのファイルだけでなく、全てコンパイルし直される感じだったと思う。

ソースは知らない言語だった。(パスカル?)
962デフォルトの名無しさん:2009/06/16(火) 14:21:27
>>961
957 で書いたように、俺は BCC Developer を使ったことが無く、ソースを読んだ
知識で書いているので bdp ファイルとか××のチェックボックスとか言われても
わからん。
誰か分かる人がきてくれるといいね。

で、追加しろってのは、君が ini ファイルには無いと言ったから、無いなら追加
したら? ってこと。
ini ファイルに、
UseMakeFileEx = true
という行を追加してみて。
ini ファイルは、ソースを読んだところ、exe と同じフォルダにあるようだ。
exe の拡張子違いか、ユーザー名に拡張子 ini を付けたもののようだ。


パスカルはかなり C に似ている。
書くのは大変でも、読む程度なら類推でなんとかなる。

bcc32 は、長すぎる引数の受け渡しのために、レスポンスファイルというものを使う
仕組みを持っている。

これだけ知ってれば何とかなると思う。

何ともならず、かつ BCC Developer 以外を使っても良いなら、
http://www.codegear.com/jp/downloads/free/cppbuilder
から Turbo C++ 2006 を使った方がいいかもね。
963デフォルトの名無しさん:2009/06/16(火) 15:28:44
>>962
詳しくサンクス。
なるほど、行ごと追加するのね。
ターボ2006と合わせて試してみる。
964955:2009/06/20(土) 10:37:53
iniファイルにUseMakeFileEx = trueを追加したが変化がなかった。
エラーは出ないから、書く位置が違っているのかもしれん。

他には、別途コンパイルオプションを追加できる機能があるので、
それにレスポンスファイルの使用の@hoge.txtを指定してみたが、
-Wや-3などのひとつとして@hoge.txtが追加されるだけで変化なし。
これも、何か正しい方法があるかもしれん。

ターボ2006はログインの地点でうまくいかなかった。
bccの時のパスワードはあるが、それとは別のなんかな。
965955:2009/06/20(土) 15:50:31
他のBCC開発環境も簡単に試してみた。

BCC Developer
ttp://www.vector.co.jp/soft/win95/prog/se180695.html
1M レジストリ不使用 9x系可

Turbo C++ Explorer(こちらは落とせたが、教えてもらったのとは違う?)
>>812
397M .net1.1  使用許諾ファイルを取得できなかった

Visual Windows for BC++
ttp://www.vector.co.jp/soft/win95/prog/se326602.html
9M 環境設定ウィンドウが見づらい

C言語を始めよう!
ttp://www.vector.co.jp/soft/winnt/prog/se466561.html
1M レジストリ不使用

CPad for Borland
ttp://www.vector.co.jp/vpack/browse/person/an017148.html
作品がリンク切れ(ミラーページ?あり)
1M レジストリ不使用 9x系可 カンパウェア

9x系でも使いたいから、CPad for Borlandかな。
コンパイルオプションを記述で指定するタイプだが、
逆にレスポンスファイル指定とかできるかもしれん。

TurboCも.net1だから9x系で使える可能性もあるが、
.netでPCが不安定になった事があったからな。
966デフォルトの名無しさん:2009/06/22(月) 22:26:40
#pragma commentでshlwapiをリンクしているが、
突然、フルパスを指定しないとエラーが出るようになった。
なんかPCに変なものをインストールしてしまったのかな。
967デフォルトの名無しさん:2009/06/22(月) 22:59:42
bcc32.cfgかilink32.cfg内の
LIBのPATHがおかしいんじゃねーの
968デフォルトの名無しさん:2009/06/23(火) 02:05:17
>>967
サンクス。
たぶんその通りで、SetBccを使って設定しなおしたらうまくいった。
969デフォルトの名無しさん:2009/07/18(土) 04:58:06
Vistaを使用しているのですが、下記のプログラムの出力結果が★のようになります。

fail:T
bad:T
eof:F
1
----
#include <fstream>
#include <iostream>
int main()
{
std::ifstream ifs("D:\\test.txt");
std::cout << "fail:" << (ifs.fail()?"T":"F") << std::endl;
std::cout << "bad:" << (ifs.bad()?"T":"F") << std::endl;
std::cout << "eof:" << (ifs.eof()?"T":"F") << std::endl;
std::cout << 1 << std::endl; // (あ)
return 0;
}
970969:2009/07/18(土) 04:59:45
調べた結果以下の特性があるようです。
 ・(あ)をコメントアウトすれば全て"F"が表示される
 ・(あ)はプログラム中のどの場所に置いても結果は★のようになる(関数の呼び出し先で1を出力しても同じでした)
 ・(あ)数値ではなく'A'や"ABC"を出力した場合、全て"F"が表示される

一体何が起こってるのか全くわからず手詰まり状態です。
何かまずいことしてしまっているのでしょうか。
971デフォルトの名無しさん:2009/08/20(木) 11:54:23
>>812
Turbo C++ Explorer
http://www.forest.impress.co.jp/lib/stdy/program/progdevenv/turboexplor.html
>>962
Turbo C++ 2006
http://www.codegear.com/jp/downloads/free/cppbuilder

2つの違いはなんでしょう?
どちらでもTCPP_EXPL_JP_DL.exeがDLできる形になる気がする。
しかも、それを実行するとBorland Turbo C++を
インストールできるみたいだが、
これは先に上げた2つと名前が違うが、大丈夫なのでしょうか。
972デフォルトの名無しさん:2009/08/20(木) 14:04:45
同じじゃん
973971:2009/08/21(金) 07:24:13
・ユーザー登録の仕方が分かりにくい
 (popupウィンドウが出た後ページが切り替わる)
 (そのページに入ると英語になる)
・容量800M越え
・.net1が必要(3は既に入っているのに)
 (書かれているリンクはリンク切れ)
・readmeの文章が分かりにくい
 (再配布、商用利用、選べる言語の数など)
・PCに別のユーザー名が登録される(XP)
・BCC5.51とは当たらないでくれた
 (5.82がある時でも、BccDevで5.51でコンパイルされた)

入手するだけで大変だったから、
自分には向いていないかも。
BCC5.82を単体で配布してほしい。

>>972
サンクス。
974デフォルトの名無しさん:2009/08/21(金) 08:16:13
975971:2009/08/22(土) 08:43:34
>>974
サンクス。
976デフォルトの名無しさん:2009/08/22(土) 22:35:44
インストールに2時間かかってしまった・・・
シリアルとキーはどこにあるか探しまくって、結局MyPageから登録製品一覧で見つけて・・・
登録ウィザードかけたが認証しなくて、メールも返って来なくて固まって何個も起動して応答なしばっか・・
結局ノートン止めてやったらやっとWEB認証出来た

強制終了も効かない認証システムってウイルスかw
977デフォルトの名無しさん:2009/08/23(日) 10:50:24
ノートンがウイルス
978デフォルトの名無しさん:2009/08/25(火) 22:09:50
コンパイル時に"-RT-"を指定してRTTIを無効にしたのにもかかわらず
RTTIを使ったプログラムが正常にコンパイルできてしまいます。
指定方法が間違っているのでしょうか?ご教授をお願い致します。
コンパイル後のバイナリファイルにクラス名が残っていたので
気になって無効にしてみたのですが・・・。
979デフォルトの名無しさん:2009/09/15(火) 19:34:22
CPad for Borland C++Compilerが手に入らん
980デフォルトの名無しさん:2009/09/18(金) 16:07:21
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
致命的エラー F1008 hoge.cpp 168: メモリ不足(関数 main() )
*** 1 errors in Compile ***
って言われます。
これを解決する方法はありませんか?
981デフォルトの名無しさん:2009/09/18(金) 17:00:06
ググると「テンプレートの深さ」云々ってページがひっかかるけど思い当たる節は?
982980:2009/09/18(金) 18:08:30
>>981
ありがとうございます。

思い当たる節はないです。
ただ例外を多用しています。

ちなみにVC++とg++では問題ありません。
983デフォルトの名無しさん
どういうソースかわからないと調べようがないような気が。